Who are my students

For my How to Teach Webcraft and Programming class, we are supposed to describe our students.  So, below are some of my descriptions of students present and past as well as myself as a student.  I’ve had a wide range of students, but interestingly, they do sort of fit into categories.

The Artist

Painted StreetsI’ve had/have a lot of students who have tremendous artistic talent. They often know their way around Photoshop or Illustrator and are looking to take their talents to the web or into graphics through programming.  Many of these, maybe most, are quite independent, perhaps because they have worked independently on their art. They are often the kind of student I can give some key Google terms to or hand them a book and they’ll come back having figured out something cool.  Past students have created fabulous flash videos or beautiful-looking web sites.  Not all, but some, get confused by the logic of scripting and get frustrated when scripting “messes up” their work.

The Over-Achiever

Sanna Science FairTo me, this is the classic CS student in many ways.  These are the kids who enter the science fair without being told to, who read a lot, who take an overload of courses, and, of course, who hack their own computers at the age of 5.  Interestingly, my students often do everything but that last one.  So, I get students with the smarts and drive to accomplish anything, but who avoid the innards of computers.  These students usually pick up things fast, but not always.  Sometimes they get frustrated when they don’t because usually everything comes pretty easy to them.  But I do find them to be persistent, though sometimes not as independent as the artist-types above.

The Reluctant Learner

Frustration (was: threesixtyfive | day 244)I get these when I teach required classes or required training sessions.  These students have run the gamut from adults tasked with maintaining a web site to young adults and kids required to take a “computer” class.  In the case of required training, the students often really need to understand what I’m teaching.  Maybe they need to keep their jobs or they want to get a new one.  Whatever it is, the stakes are often high.  And yet, they’re not necessarily motivated to learn.  Or they don’t have the prerequisite knowledge to learn what I’m now teaching them.  On the opposite end of the spectrum, I’ll have students who are required to take a class, but it’s not graded or doesn’t “count” or some such.  In other words, the stakes are really low.  Sometimes these actually turn out well, if I can find something that will tap into their interests.  However, if I can’t find a way to connect what I’m teaching with what these students want or need, then it’s often a lost cause.

Me

Laura Blankenship and laptopI’ve liked computers since I was about 12 when I got Pong.  I learned a little bit of BASIC in 7th grade, but mostly I play Haunted House (on a Tandy) and Lemonade Stand (on an Apple).  I took a CS class in college (BASIC again).  After years of pursuing an English degree, I landed in a tech job, having to learn most of what I needed to know on my own.  I’ve continued to move deeper into teaching computing and now teach CS.  I’ve run into people like myself teaching in K-12 schools.  We are what one might call tech gurus, but we were never formally trained programmers.  Some of us have worked as programmers or developers, but most of us have just learned from books or courses here and there.  I learn primarily through practice, trying to program nearly every day, often setting myself increasingly difficult tasks.  What I’m learning is that while those with full CS degrees can often tap into much of their past material, the field changes so quickly that everyone is almost always learning.

Building a program by yourself

Takes time.  I have to remember this.  I also have to remember that I’m not currently teaching the course that will be the foundation of the program.  It’s all still just on paper.  And it’s only 50% of my job.  The other 50% is also in need of some support and building, but I have colleagues to help with that.  That program is about supporting the teachers in using technology and I’ve found a pretty receptive audience for that.  There’s more to be done, and I have some ideas for that that I’m planning to implement soon.

The other program, the CS program, I’m not worried (that much) about, but still I feel like I should do something.  Here’s what I am doing so far: talking up the program with parents and kids; running a MS CS club to build interest early; running an after-school program for 4-5 graders to build interest even earlier; promoting the program through the web site, open houses, and more.  I get this feeling there’s more.  The robotics club for high school is basically run at another school and I haven’t been able to attend since winter break.  It’s mostly attended by seniors, kids I haven’t really connected with, which is not helping my cause I’m sure.  I’d like to do something club-wise for CS that’s not robotics perhaps this year, but definitely next year.  I still might have to do robotics because a) there’s some demand for it, though more demand than actual commitment; and b) we have the materials lying around.   I guess I get the feeling that if I just do the right extra thing, suddenly 14 kids will show up wanting to take CS in the fall.  Unfortunately, I have no idea what that thing is.  So I keep trying different things.  What I know for sure is that it’s just going to take time.

Technology, Computer Science, More thoughts

There are quite a few conversations among computer science teachers and professors happening right now about the state of computer science in high schools.  I just finished a draft of my own syllabus for Intro to CS and in doing so, I spent a lot of time looking at other people’s syllabi, asking current teachers what they taught and why, and reading up on issues regarding teaching CS in high school. So this issue is in the forefront of my mind.  Not being in this role for very long, my thoughts about what to teach, whether to require CS in high school, among other things are not fully formed.  I wrote a little about this a while back, and I still hold that there’s a difference between being tech/computer savvy and being a computer scientist, I’m not entirely sure that we should privilege one over the other at the high school level.

So, let me present some other people’s thoughts before I present my own.  First, Douglas Rushkoff has a book out, called Program, or Be Programmed and wrote a brief piece for the Huffington Post about how he thinks programming should be required.  I’m in the middle of reading the, and so far, it has very little to do with programming and more to do with a more general understanding of how technology works.  For example, he talks about how Facebook is not really interested in helping you build a community of friends, but in using your information and your connections to make money.  Most of the changes they’ve made to the site over the last few months have been designed specifically to facilitate their ability to make money.

Alfred Thompson responded to Rushkoff’s ideas in this post, which has some really interesting comments, with some people who think it’s silly to suggest that we should teach programming in high school, some who think we should stick to teaching applications like Excel, and some who think we should definitely teach programming to every student.

And then, today, the CSTA issued a report, which I have only skimmed I admit, called Running on Empty: The Failure to Teach K-12 Computer Science in the Digital Age.  It’s main argument is that the skills kids need to succeed in the 21st century are CS skills and those skills are not being taught in many schools and only required in 8 states.  So, we need to work toward requiring schools to teach those skills.  Now, the CSTA curriculum for CS, which I’ve spent a lot of time with isn’t just programming.  There are lots of other computer skills in there like web design, binary, ascii code, ethics, networking, etc., so unlike Rushkoff, they’re not necessarily advocating every learn to program in high school.

Okay, so here’s my thinking.  I think everyone should know the difference between an operating system, an application, and a web browser.  I think everyone should know several different operating systems, not inside out, but at least know that there are different ones, that there are similarities between them, etc.  I think everyone should understand file structures.  Where does that file go when I save it?  I think everyone should be able to type in a web address and know what a url is.  So many hours of people’s lives are wasted searching for Google on Bing or vice versa.  I think people should know how to find out how to use applications.  Note, I did not say people should know how to use Word or Excel.  Applications change.  You should be able to feel your way around, use the help feature, or use a search engine to figure it out.

But those are not really computer science skills; however, I think it’s hard to go to the CS skills if you don’t have at least this groundwork laid.  I articulate them because I’ve spent a lot of time helping 6-8 graders and teachers alike figure out some of these things.  When someone opens up Word to find their Google Doc, something is wrong.

On the other hand, I’ve figured out a lot of what I know about using computers and doing some pretty darn complicated stuff with them without having any formal training in CS.  But why did I learn those things? Why did I figure out HTML, CSS, Flash, & PHP? Why do I know what a C: drive is, what DOS is, and how to FTP?  In part, because I was curious and I just wanted to know.  But also because the computer, back when I first started using one, was a clunky thing, and didn’t hide everything.  No, I couldn’t open up the uncompiled code, but I could see the computer’s structure by listing directories. Often to run a program, you had to type a complicated series of backslashes and directory names.  Back when I started working on the web, you could easily see the HTML and eventually, the CSS.  And back when I got email, there was no “You’ve Got Mail” sound or envelope icon to double-click.  You had to log in to a server, know the server’s name, i.e. lblanken@dev.iu.edu.  So, computers were more transparent and I wanted to learn more about how they worked because I could see some of that just in my basic interactions with the machine.

That interest did not translate into my learning programming at first.  I was quite content just knowing my way around a computer and its (already made for me) programs.  It got me good-paying work along the way and got me into the growing field of educational technology.  I’m leary of applying my own experience to the present day.  For one, today’s technology environment is very different from the late 80s one I grew up in. Knowing how to use a word processor or basic database program does not garner the amazement it did in 1989.  Had I been in the right place at the right time, I might have ended up at Microsoft or Google, but we didn’t have CS courses in college, much less high school.  Today, it’s still true that a student with the right CS skills could end up at a start-up (or starting their own) or at Google or Microsoft or any other company that needs programming/HCI/data analysis (almost all).  But it’s more likely now.  It’s more likely that a student will have access to a computer very early.  I didn’t even see one until I was 12 and then there were only three in our whole school.  There were none in our high school.  In college, we had VAX machines.  I took a CS class on PCs my junior year and the next year, we finally got a mac lab.  So younger students are exposed to the equipment, but what they see is a slick operating system that looks more like a tv than a computer (and sometimes it is).  How many will want to dig around on their own?  And how much more do they need to know to be able to do so?  Computers are more complicated than they were.  And the Internet has exploded and we have tiny little devices that are tiny little computers.

So I say it’s not an either/or kind of question.  Yes, we should teach people how to use their computers and the applications on them, but I believe in doing so at an abstract level as much as possible.  And yes, I think we should teach programming.  Will everyone become a programmer? No, but if we give them the opportunity, we might end up with more of them, and more women and more minorities in IT and CS fields as a result.  If we wait till college, we’ve already lost a lot of people.

I have more specifics to say about the CSTA and other curricula, but I’ll leave that for another day.

Enhanced by Zemanta