Pretty much this entire school year, I’ve been trying to come up with a good way to syndicate content to my school web site for my colleagues.  I’ve tried various iftt recipes.  I’ve gone back to diigo, rss, and javascript.  I’ve tried a learning management system.  I was kind of stuck with the school web site because that’s where my colleagues are.  There are a handful on Twitter, but mostly everyone is still just reading email and checking the web site.  Nothing automates perfectly.  For example, diigo is a great option for bookmarking things, but its embedding tool is awful and makes bookmarks hard to read once they’re embedded.  There are no bullets or other options. I tried to use another tool to take the RSS from diigo to Javascript, but the RSS feed isn’t valid so the Javascript is borking. Storify looks pretty good embedded on a web page, but I find it hard to collect the links into Storify.  I can’t get the extension to work well and I don’t want to take the time to visit the site itself. I’m having the same issue with Learni.st.  The embedded format is nice, but the bookmarklet doesn’t work. Delicious no longer has the linkroll tool.

That whole “Small Pieces, Loosely Joined” thing is failing me right now.  I will try to not go all gloom and doom about how the web is falling apart, but hey, exhibit A.

So, I’ve resorted to emailing, mostly.  I see an article or tool I think a teacher might be interested in, I just email them.  Is it time consuming? Kind of. But it’s very direct and this way, I know they’ve seen it.  And, I think, It probably creates a better connection rather than just hoping they visit the web site.  It’s a reminder that there are things that should be automated, and maybe things that shouldn’t be.

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’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!

 

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’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.

In the last week or so, I’ve been working on a couple of projects where I didn’t know everything going in. I created a little mock election program in Python, which was easy enough. But I wanted to put it on the web, something I’ve never done before. I’ve done a lot of things on the web, which is how I started in this computing gig to begin with. But connecting the two was a challenge. I had to marry two paradigms. I’ll admit that I got frustrated more than once. I swear I could feel my brain getting hotter as I struggled. Maybe I created some more brain cells.

After I got everything to be functional, I made it pretty. I had more fun than is probably legal playing with CSS and HTML, which I haven’t done in a serious way for a long time. I learned a couple of new CSS tricks, which was fun. I forgot how much fun it is to see the results of your work so immediately. Change a color. Boom! Done! Change the background image. Boom! Instant gratification. So much fun.

I’m also teaching objects in my CS II class, something I haven’t done much of. I’m spending some quality time with objects, which is more fun than it should be. I have a nice little virtual pet program going that is giving me way too much joy.

I wish I had more time to do these kinds of things, but, of course, that’s why I teach and change what I do frequently. I can’t imagine doing the same thing over and over.

I get asked quite often why I decided to make a move from college-level work to teaching in a k-12 environment. There was the obvious fact that I could not find a college-level teaching job. I had nibbles, interviews here and there. I even had one job pan out, but I turned it down because of distance and work load. There are plenty of practical things about the hours, the pay, and the type of work that made me choose to leave college work. But I think much of my decision was based on intangible things that had to do with the way I interacted with the institution.

It can be summed up with a phrase that I uttered to a colleague the other day, “We are the school.” At every place I’ve ever worked, I’ve always taken that attitude. I am part of the institution. I represent it out in the world. I contribute to it. I help keep it going, improve it, etc. and I feel that my colleagues do the same. I expect in return remuneration, of course, but also a general appreciation of my contributions to the institution. That appreciation does not have to come from the top, i.e., the administration. But I do need it to come from my colleagues first and foremost, but also students and, in the case of a k-12 school, parents (all of whom are also the school). I need to feel a sense that what I do matters, even if it’s just to a handful of people, and I need to have some semi-tangible evidence of that–appreciative emails, a thank you in the hallway, a student who lingers in the class to chat or who says hi every day in the hall. And I try to pay these things forward as well.

I guess I would classify this as a sense of community, and I suppose a collaborative work environment, a sense that we are all in this together. I get that from where I am now, even as I am aware that not everyone may feel the way I do about it. I feel it’s my job to help them feel that way about it (or alternatively, just to recognize that some people aren’t happy and there’s nothing I can do about it, so I will ignore them).

Almost every institution of higher education I’ve worked at, save one, has been the opposite of this, to the point where I just decided that the one, my graduate school, was the exception, not the rule. What I’ve found at many colleges is an air of competition, of differentiation into us and them, of a lack of empathy or even a lack of desire to understand what people across the campus do. There’s a rigidity to most places that is stifling and unproductive. Faculty get appreciated and recognized by their field and not their colleagues within their institution. Faculty may build relationships with students during a class but almost never outside of class. Staff are invisible to both faculty and students and their work goes unappreciated, and unnoticed except when it goes badly wrong and then it’s suddenly “all their fault”.

It’s a toxic environment that’s hard to fix, especially in a place with lifetime employment on one side and comings and goings among both staff and students on the other. And I am vaguely aware that such issues exist on a smaller scale at my current institution. But they are not what defines it, which has been the case at too many places I’ve been involved with.

I guess I feel that institutions of education should encourage a feeling of working toward the greater good, a common cause of educating citizens of the world. Even at research-heavy places, there should be a feeling that your work could lead to the betterment of society, whether that’s through finding cures for diseases, building the next great app, or helping people understand how literature creates a view of the world around us. Instead, many places seem to foster a dog eat dog world of fighting over scarce resources, of claiming some kinds of work is more important than other kinds (based on funding models), of a focus on looking out for oneself rather than for the institution or its members.

I could say a lot more, but I’ll just end with saying that I’m grateful for my job, for my colleagues, for my students, and their parents, all of whom make me feel like what I’m doing is worth it, even when they’re challenging me. And that’s a really nice feeling.

Mr. Geeky’s response to my last post about women and coding with, “Okay, so what do you do differently?”  I didn’t have an immediate answer, and I certainly don’t have all the answers, but I’m working on having more answers.  Here are some brief but immediate ideas, based solely on my own experience and a tiny bit of reading.

1. Connect to what women like.  Don’t know what they like? Ask.  Things that work for me:

  • Graphics, drawing, animation. Graphics, by the way, is a great way to reinforce math skills.
  • Music and sound
  • Current movies, books and tv shows.  Think trivia games about these or text analysis.
  • Physical object, especially cute robots, Lilypad arduino/soft circuit projects

2. Let them work in groups–at least for a couple of projects.  Women are social.  They like talking to each other as they’re working.  Sometimes they’re talking about their projects, sometimes not.   Note: not all women are social, so allow them to work alone if they want.

3. Assume they know little about the inner workings of a computer–everything from file systems to motherboards.  One of my first labs is to take a computer apart.  Very fun!  And it gets them to understand more about the hardware.  Teach them these things in context, not as a lecture.  As they’re using files in their programs, for example, they’ll get what a full path name means.

4. Give students time in class to work on projects, so that they have your and others’ support.  This also deals with equity issues.  I can’t necessarily expect that everyone has access to a computer at home, so all their projects are done during class time.  It creates a workshop environment that I’ve enjoyed.  Whether that will work with more than 10 or 15 students, I don’t know.  But we’ll see.

5. Speaking of projects, assign interesting projects (see number 1 above).  Recently I did a search of Computer Science projects just to get some ideas to add to my own list and it was depressing.  Calculate the nth prime number? Fibbonacci sequence? A lot of math-related stuff, a hold over I suspect from the days when CS was math.  If students are interested in that, fine, but I’ve had better luck making suggestions, but ultimately letting them choose.  My students have created games (“rock, paper, scissors”, “tic tac toe”, “lingo”) and robotics projects (“navigate a maze”, “dance with a partner”), among other things. 

6. Be flexible.  I’m lucky to have only women in my classes, and while there are definitely differences among individuals that I have to accommodate, they are more similar than not.  Adding boys to the mix complicates matters.  Boys have higher confidence than women when it comes to talking about computing and trying things.  This will sometimes intimidate the women in the class.  You have to be able to pivot and create an environment where this doesn’t happen.  It means creating assignments that appeal across the board, and it means supporting students who do good work, but may not be taking as many risks as those who have more experience and confidence.

7. Don’t get stuck on the language, environment, etc. Especially in middle/high school.  Some other language is going to come along by the time they’re in college or working.  Or what they learn in high school won’t be what’s taught at the college of their choice.  I like Scratch and Alice, Python (using the Calico project for my environment), and Processing (great way to create art).  You’re teaching concepts.  As I often tell my students, “Everyone uses a reference manual.”  While you’ll memorize some things, you’ll never remember the exact syntax for everything.  And if you switch languages, knowing that is very helpful.  There is no right language, though some languages and environments are easier to teach/learn and are more engaging to some people.

For non-students, women who want to learn to code in order to further their careers or just because they’re interested, some of the same things apply.  I’d say, too, that if you can latch them onto a project that has practical application, that they or someone they know might actually use, that’s a great way to get them involved and learning a lot.  One of my first projects that involved data structures was writing something that keeps track of my food items and tries to match that with recipes.  It was something I really wanted to work, so I worked harder on it.  And that wasn’t something anyone has ever suggested in any class I’ve taken online or offline.  I teach in a way that I’ve never been taught. 

Solving the time problem is harder, but one thing that CS is good for is breaking down problems into small bits.  Find a project and just write a small piece of it at a time.  For my recipe project, I started with structuring my recipes so that I could separate food items from them.  Just a bit at a time. 

What am I missing?  What else works? How do you work around the time problem?