Yesterday, I went my third EdCampPhilly.  Here are my retrospectives on the previous 3.  I could only go to half of the conference because I was attending a board meeting in the morning.  I mostly focused on 1-to-1 programs and flipped classroom things, since that’s something we’re working on at my school.  I got a lot of good ideas.  It’s also interesting to see some of the differences between the way people approach different issues.  Schools have many different kinds of constraints.  I’m grateful to have relatively few, and to have so many colleagues who share a similar approach to teaching and learning.  We don’t always agree, but we have good conversations around ideas.  I always get something out of these.

Edcamp is like having those conversations all the time, and hearing from multiple viewpoints.  I think it’s very important to get out and see what others are doing. It’s never good to stay in a bubble.  It’s also good to talk to people face-to-face.  Many of these folks I’m following on Twitter or reading their blogs, but it’s great to have more extended conversations around teaching.

Some of the highlights for me were a discussion of the shift that’s been occurring for quite a while where students have access to tons of information so don’t need us for the basic facts.  The way I see it is we need to encourage teachers (our colleagues in some cases) and students to approach the classroom differently.  In both sessions I was in, this was the main topic.  We talked about flipping, 20% time, and other ideas for having students acquire basic facts from videos, texts, etc. and using class time in more hands-on ways.  We talked about assessing differently and about having flexible due dates.  As I’ve started planning for next year, these were good discussions to be a part of.  We didn’t have all the answers, but we’re at least asking questions.

I’ve been wrestling with a student project for the last couple of days.  She’s doing part of it and I’m helping.  We’re using a tool that I like, but that I don’t know that much about and for which there isn’t much documentation.  There are lots of moving parts.  There’s python, there’s a database, there’s a web framework, and then there’s just HTML.  I started in this computing schtick with databases, so I understand the structure.  I know MySQL syntax and some SQL, but I used PHP to interface with those languages.  Now I’m using a python web framework.

Basically, I’ve been writing a line of code, running the code, and reading error messages.  I was excited when I got new error messages.  I came close, very close, to giving up.  But I finally turned to a forum, found some better examples, changed the function I was using and voila! Success!

But I completely understand my students’ frustration sometimes.  I found myself saying, “What do you mean, that variable is undefined? It’s defined right there!”  Or more often, I was trying to figure out what some method returned: a list? a dictionary? an object? all of the above?  I have developed a pretty good process for reading errors and figuring out where things are going wrong.  My students sometimes get frustrated if they get more than one error message in a row.  I don’t blame them.  We discussed the image below the other day, because it always seems to be true.

one_codeThis also happens when you take out one line of code.  I like the puzzles though.  I can get past the frustration when I have a clear goal in mind, and know what I want the end product to look like.  My students seem to be that way as well.  With really complex projects, though, it’s sometimes hard to see the end goal.  It’s even hard sometimes for them to see the pieces.  This project that I’m working on I broke into pieces.  My student and I are working on different pieces.  And she’s doing a lot of the conceptualizing.  We’re hoping to have at least two or three working pieces before the end is here.  Or at least have a clearer vision of the final goal.  That’s a major accomplishment.  I just hope they can see it as one.

I’m not sure I’d call myself an expert in anything.  I’ve switched jobs a lot.  Technology has changed a lot.  I am still learning things, and I still make mistakes.  But, I’ve been an educator now for over 20 years.  I pay attention to research, both general educational research, and research specific to my field.  So I know a thing or two.  Still, I’m uncomfortable putting myself out there and saying, this is what I think and I think this because I’ve got experience and knowledge.  In other words, you should listen to me.  It feels somehow aggressive, and what if I’m wrong.

But I’m starting to think that now is the time to be an expert. I have to be okay with being wrong, but in order to be wrong, I have to have an opinion.  My field is sort of notorious for promoting “the right way” to do something.  In Computer Science, everyone thinks they know just the right language to start with or just the right approach. Often they’re evidence for this is, “It’s what I use or how I was taught.”  Not good enough.  I’m perfectly okay with saying, I use Python because it’s what I know.  I wouldn’t use it if it weren’t a good language to teach CS in, but I’ve read the research that says it’s a good language to start with.

I’ve also read the research that says that abstraction is a difficult concept for most high school students, so teaching certain CS concepts that require abstraction is a challenge.  I tread carefully there.

Many HS CS teachers I run into know this as well.  They’re very thoughtful about their approaches to teaching, and they have the same challenge I do.  They’re trying to teach CS in an “appropriate” way, according to good educational research, but they’re also trying to attract students, especially women and minorities, to their classes.  So the classes have to be educationally sound *and* fun *and* sensitive to gender and racial issues.

Many college professors, sadly, are not so thoughtful.  They’re not required to take the educational courses that HS (and Middle and elementary) teachers do.  They don’t know constructivism or who John Dewey even is.  Some know Papert.  Most think educational research is not important.  And college professors, I’m sorry to say, are often also the ones most loudly touting language x or language y or book x (often theirs) or book y (a colleague’s).  They are experts in their field, though.  And they want us listen to them.

But this is field specific, and it’s not the only thing I’ve been thinking about when it comes to expertise.  It’s also a little about leadership.  Being an expert can sometimes mean being a leader, and that means doing something with your expertise.  And I think that’s what I find particularly challenging.  What do you do? Write a book? Maintain a blog? Start a nonprofit? Move up the ladder at your institution so you can have influence? It’s funny because I tend to be, as my college roommate used to say, “all hat and no cattle.” That is, a cowboy who wears a big hat, but has no actual cows.  All talk, no action.  That’s not entirely true, but it is a little bit.  And I think it’s fear that holds me back.  My fear is typical impostor syndrome stuff, fear that I’m wrong, fear of conflict, etc.  And worry.  When I was writing my dissertation, everything else fell by the wayside except the essentials.  And what went first, mostly, was my family, because they’re awesome and supportive and I sort of took it for granted. The outcome of that was not good, for me or my family.  And I worry about doing that again.  If I took on a book project or started something big, even taking on something else at work, I’d have to put them on the back burner again.  And I think I can’t do that.

It’s not like there’s any particular opportunity I’m faced with, but I see a lot of little ones.  I see people not stepping up to do things, and so I do.  Because I care.  And I feel like I have something to contribute.  I understand better now what those contributions are, but I also understand better where I have to draw the line.  I think I’m doing pretty well.  I’m grateful for summer when the schedule allows me some flexibility: longer amounts of time for contributing and longer amounts of time with family.  Such a great benefit!

 

Another Friday, another collection of random links.  I think, though I’m not sure, that they’re all different from last week’s.

Quite a list, and aside from productivity things like Drive, Mail, and Calendar, mostly different.  I think I’m scaring myself.

Education is not the piling on of learning, information, data, facts, skills, or abilities – that’s training or instruction – but is rather making visible what is hidden as a seed.

Thomas Moore

Dandelion seeds (achenes) can be carried long ...A former boss once said to me that I planted seeds.  The implication, I think, was mostly positive, indicating that I have a lot of great ideas.  But it was also a little bit about my lack of seeing those seeds to their full growth.  If anyone has seen my yard and/or indoor plants, you might understand that this is a bad metaphor for me.  Most of my plants are sad looking things, barely surviving their poor caretaking.

But it’s true that most of what I do is give out ideas, get people started and then leave them to finish things up, to grow in whatever way they want.  With my students, I’m providing a lot more support.  I continue to give them information, push them, encourage them, etc.  But still, there’s no way of knowing if what I’ve said or done will effect them five years from now.  Having contacts at my former job, I know some of the things I floated as ideas as early as 10 years ago are now coming to fruition.  Some things I started are still flourishing, which is heartening to see.  I can only hope that some of my current students have learned something in my class that helps them or guides them ten years from now.

At my current job, people often credit me for giving them the idea to do something, which is also flattering.  Many of my ideas come from Twitter or blogs I read. Because I’m in a small school, I know what my colleagues are doing and what they might need.  I just happen to be at the right place at the right time (online). For my own teaching, though, I’m a bit on my own.  Not that many CS teachers tweet or blog. Which I think is weird. I’m grateful for those that do.  I love sharing ideas with them and stealing the good ones I see (:)).  I think, though, of my CS teaching as planting seeds, primarily because there’s so much to Computer Science, I’m constantly aware of how much I’m *not* teaching.  There’s just no way to cover it all in high school.

I am lucky, however, in that I get to have students over the course of several years and often, I get to have them in multiple contexts, class, clubs, in other social situations.  I really get to know them as people.  That allows me to cultivate the seeds I’ve planted more thoroughly, and better.  And that’s what I think about most often.  I want to plant more seeds earlier.  I want to nurture them more.  And my challenge right now is, how.

 

Enhanced by Zemanta

Today I worked on something kind of hard.  And it’s something I’m asking one of my students to do.  I had to connect three different things together: HTML, a database, and Python.  I was using a tool, PythonAnywhere, that I had introduced to my students earlier.  I, myself, have used PHP, HTML, and MySQL (database), so conceptually, I knew how to make this work, but practically, I wasn’t sure.  My students don’t even have the concept part down, which makes it even harder for them, so I wanted to have step by step instructions to get them started.

So, I took it one step at a time, myself.  I did the easy part first, creating the HTML form to take input.  Then, I went to my Python file and wrote psuedocode for each function I needed: one to add data, one to delete, one to update, one to show/sort.  Then I made my database directly in the shell.  I wrote a single function, connected it to web form, and then tried it out.  This is actually the opposite order in which I told my student to work–sort of.  I had her my the database first.  Then, I had her make a form, then the Python.

The hardest part of all of this was explaining conceptually how all of it works.  I knew.  I could envision from the beginning how the pieces were going to fit together. For me, it was just a matter of trying out the code in this unfamiliar environment.  I was integrating new knowledge into old.  Lots of, “Oh, that’s how they do that!”  My student, who was having a hard time grasping the idea of taking data from a form and storing it somewhere where you could access it in different ways, had no vision, no model for what that looks like.  It was all new to her.  Yes, some of the Python code is familiar, but the context is very foreign.

I’ve been doing some reading about this problem.  What do you do when you have a student who can’t create a model of something in their head?  What if there is no previous knowledge to build on (or very little)? How do you help them learn? Sometimes we use metaphors.  In this case, I could have used a bucket metaphor maybe.  I tried to use a spreadsheet as a model, which sort of worked.

I was excited to have figured out how to make everything work, but struggled to figure out what to do to make it more straightforward for my students.  One thing I think I will do is teach web programming more directly.  We dabbled this year because we had some time, but I think this is the kind of thing my students might encounter and might be interested in.  And I can teach a lot of other concepts through this.  Investing more time on it seems like a good direction.  I need to do some more thinking about what to do when the concept goes straight over their heads.

Enhanced by Zemanta

I was going to write another “OMG! I’m so busy!” post but I see I did that a week ago. But I am so busy, and one thing I’m struggling with is setting priorities. Right now, I’m mostly going with what’s most immediate. If it’s due tomorrow, that’s what I’m working on. Tomorrow, I give a talk, so today I created visuals, and in a few minutes, I’m re-reading my notes. Sigh.

I really do need the break that’s coming up in a little over two weeks. Most of the work that’s stressing me out a bit right now will be done by then. To some extent, it will be downhill after that. But before that, there are talks to give (yes, multiple), programs to write, classes to plan, robotics competitions to participate in, meetings to lead, documents to write and trips (yes, multiple) to plan.

Somehow it will all get done.

I’m starting to think that grading doesn’t just suck, but is actually damaging. I don’t have a well thought-out idea here, but I would really love to get away from grades somehow, or do grading differently. Here’s how I think it’s damaging. Most students focus on the grade, even those that say they don’t, the grade is a form of feedback that tells them how well they did, so they take something from it. So students can be either crushed because they internalize what a grade says about their ability (mea culpa) or they can become overly confident cause they follow the letter of the assignment but not the spirit. Later, they get crushed. Worse, they might not learn the material.

I am blessed with students who, honestly, I think, would do the work without the grade. If everyone made it through the class, could I just give them all A’s? Doesn’t seem quite fair when you look at it that way, because some people might do just the bare minimum and others would go beyond. It seems like those who do more should be rewarded in some way. And this is my main struggle. How do I reward those who don’t just check the boxes, who think outside those boxes? And how do I encourage everyone to want to do that? The idea is, I guess, to give As to those who go above and beyond. What I find, though, is that there’s a bit of an expectation to get an A for checking the boxes.

And what it might boil down to is that grades aren’t enough for some students, and they’re discouraging for others. And it’s definitely discouraging for me.

The thing is, I like giving feedback. I write all kinds of things on my students’ work. I just wish I didn’t have to attach a grade to it. Some I’m in search of two things: a better way to motivate my students to do their best work and a new way of providing good feedback on work they do.

Audrey Watters has a fabulous write-up about the trend of the learning to code movement that’s happened over the last year. Well, I have an interesting perspective on this whole thing. Over the last couple of years, I’ve learned to code. Also, I’m learning to teach code.

Some time ago, maybe 3 or 4 years ago, I confessed and lamented that I didn’t know how to program, which is both true and false. I have had a computer science class. I learned BASIC, which I had learned 9 years earlier in 7th grade. I knew what a computer program was. I’d written some simple ones. More recently, I had valiantly tried to learn PHP and JavaScript. I never really learned those, though I hacked other people’s code all the time. I just never started anything from scratch. I also knew HTML and CSS, things I’d learned on my own for the pure fun of it. So, up until two years ago, I would have called myself a dabbler, a hobbyist. If anyone asked me if I could code, I would have said, no.

But here I am with quite a bit of coding under my belt. I still would not call myself a programmer, but I am fairly proficient. I wrote a voting program for my school to do mock elections. I needed a little help but mostly I managed on my own. So how did I learn? What tools did I use? Do I think any of the available resources are useful?

I honestly think it would be best if I could plop myself into a few CS classes, face to face, with some concentrated time to do projects and assignments. Mostly, after you learn the basics, both of computational thinking in general and then the language you’re working in, it’s a matter of using those skills to create things and solve problems. Bt I don’t have the time or money for that. I do have the benefit of a husband who teaches CS, which gave me the face to face component I needed. I was able to ask questions and get help with debugging in a way that most people don’t outside of a class. But I did learn something from the resources I used.

I started with books. I dove into Head First programming. I worked my way through the who,e book. Then I did the same with another book. Then I came up with my own pet project and used those two books as resources. Then I worked through the book I teach from, and in addition to the exercises in the book, I created my own. The creating my own thing was important. It let me figure out what problems I could solve and were messy enough that I had to learn and do things outside of my comfort zone to accomplish them. Most exercises in book and online are clean. There’s kind of a right or wrong answer for them. Real programming is messier.

I did turn to some online courses. I took a Python course through Code Lesson. I took a Udacity course on program and algorithm design. The code lesson course was much more effective than the Udacity course (which I never finished). I knew most of the material already, but I learned some new things. My work was graded by a real person, and I communicated with real people, just a few, via the forum. It cost money, though it was really a bargain. But I liked the Udacity course because it had no specific start or end dates. I could hop in and out at will. I barely scratched the surface of that course. I learned one or two things, and I would probably benefit from going back to it, but I have a time issue. I felt compelled to work on the Code Lesson course because I’d paid for it.

Where I learned the most, though, was in teaching. To teach something, you have to know it pretty well. I did all my students’ assignments and projects. If they asked me a question I didn’t know the answer to, I’d spend time figuring it out. I enjoyed the puzzles they gave me, and I learned a lot from solving them. It was like doing 7 assignments all at once. Talk about practice!

Is this the year of learning to code? Has it been successful? Personally, I think it has. I can definitively say I learned to code. But, I have a lot more to learn. I’d never apply for a job as a programmer even if no CS degree was required. I just don’t have enough experience under my belt. Has learning to code caught with others? In my own school, I have a nice cohort of students moving through computer science. But I’m not turning people away. The need to take certain courses, the schedule, and the geek factor all work to keep girls out of my classes. Some have, in fact turned to these online courses, but they find them difficult. I have a student going through intro via Udacity and I had to give a lecture on functions because the lectures and quizzes she’d already had didn’t sink in for her.

It’s great that attention has been brought to this issue, but I don’t think there’s going to be a sudden surge in people who have learned to code. For one, Alan Levine points out the small numbers of people who finish these courses. And what do they know, really? The knowledge feels abstract and ephemeral to me. Real learning doesn’t seem to happen in front of a box (or in one). That doesn’t mean that a handful of people might not learn something from all these Learning to code initiatives (some of which are face to face and probably more successful). But I think those are the people who might have learned to code anyway–through books, the web, or just hacking. What I’d be interested in knowing is if Mayor Bloomberg (or someone with little knowledge and less time) learned to code. Then we might be headed in the right direction.

Great Britain is in the middle of an interesting transition in education. Michael Gove, Minister of Education, is moving the country’s ICT curriculum toward a computer science curriculum. ICT in GB primarily involved teaching applications like word and excel, which Gove declared an outdated approach. I agree, and I’ve moved my own curriculum completely away from that. The latest move in this transition has to do with getting “properly trained” teachers into computer science classes. They’re offering £20,000 for CS & IT grads to go into teaching. They are also offering training for existing teachers, without the stipend, as far as I can tell.

There’s been some stink about this. There are two main counter arguments. The first is that no CS grad is going to want to take a salary cut to teach long term. £20k only goes so far. The bigger counter argument has been dismay that “traditional” ICT is being pushed aside in favor of something that is niche. Here’s one representation of that view: “I strongly believe that computer science should be regarded as an element of ICT and not a replacement for it.” I understand the argument, that there are technical skills like digital literacy, using social media, or creating multimedia, that are important to learn. However, I agree with what some people say in the linked article, that those skills need to be pushed into other disciplines so that they happen in context. In fact, I believe that the representation this teacher gives, that computer science is an element of ICT is part of the problem. Computer science created ICT.

So, no, don’t quit infusing technology into learning, but understand that computing is on par with math and science within the curriculum while learning to use digital tools effectively is something a little different, and something every teacher should incorporate in ways that make sense for their discipline.