I so want to comment on this post about problem solving, but I’m going to hold off until tomorrow at least.

Right now, I’m too excited about my plans for what we call Mini-Week, a three-day period just before spring break where we hold basically a three-day workshop on a topic, going on field trips, building projects, and having fun.  Last year, I worked with e-textiles and I plan to do so again this year. There are a lot more resources now, and I have a better idea of what’s involved so I’m doing a modified version this year.

We’re making a trip to the Franklin Institute to see a couple of exhibits related to design, art, and technology. Then we’ll start working on our own projects.  We’ll be visited (hopefully, still not solidified yet) by a UPenn student working in this area who is bringing some examples.  For those who finish sooner, we’ll have a playground with some other tools to play with, like arduinos and maybe a lilypad or two.

If you’re interested yourself in doing some of these things, here are some great resources:

Adafruit: link to their products related to e-textiles, but they also other cool electronic gadgets

Sparkfun electronics:  again, a selection of e-textile products.  They have some cool e-textile kits as well.

Aniomagic: Some very cool e-textile stuff, programmable through the browser!

Lilypond: ideas and instructions and links to more resources.

Enhanced by Zemanta

Teaching 8th grade has to be one of the hardest things ever.  I dare anyone who thinks they know what they’re doing in life to put themselves in front of a group of 8th graders (girls, even) and see if they can hold their own.  I’m betting most people won’t last 5 minutes.  I don’t claim to be good at it.  I struggle every day, but I’m determined to reach them.

I teach a required “technology” class in each grade level that meets once a week for 10 weeks.  In 6th and 7th grade, things are going swimmingly.  In 8th grade, things were not.  I teach Scratch in 8th grade.  My plan was to have the girls create 3 Scratch projects of increasing difficulty.  I usually end with having them create a video game.  That worked okay the first trimester, but this one, I got a lot more grumbling after we finished our first project.  I decided not to fight it.  I asked them what they wanted to do.  Tell me, I said, what technology/computing projects would you like to do?  Many wanted to do video projects.  I suggested social media of some kind.  And they jumped all over that.  So, now, I have two groups doing projects on Tumblr and two doing video projects.  I was a little unnerved about this.  What if they suck? What if they goof off?

Today, though, the two groups working on their Tumblr projects were doing awesome things.  One group was customizing their theme, creating tabs, even digging into some CSS.  At one point, one girl said, “This being techie thing is really hard.”  A girl responded, “Yeah, but it’s really fun.”  Girl one said, “You’re right it is.”  Later, someone in that group said something about how many details were involved in technology.  I just smiled.

The other group, which is really just one person, took a bunch of photos and opened them up in a photo editor and started manipulating them to make them more interesting and different.  She was playing with levels and saturation.  And that was pretty awesome.

Maybe they weren’t doing exactly what I’d had in mind at the beginning of the class, but I actually think they’re learning stuff, and for the most part, they’re doing it on their own.  They were Googling the answer to how to manipulate the html to make their tabs work.  They figured it out before I could even help them.  I think that’s pretty empowering.

I also got some feedback from my CS students this week, who are a great bunch of students, really fun to work with.  I wanted to know how they liked the class so far, what I could differently next year for the things already covered, and what they’d like to be sure to cover this year.  I also wanted to know how likely it would be for them to take another CS course in the future, whether with me or later in college.

Here are their thoughts, summarized:

1. They generally like the class and find it fun.  The projects we’re doing are varied and interesting to them.

2. They all hate it when the technology doesn’t work.  I would second that, and I’m working on fixing those issues.

3. They want to go on field trips.

4. They want the class to count for something toward graduation other than a basic elective.  Some suggested language. :)  I laughed because Mr. Geeky tried that same strategy in grad school in order to avoid taking another language.

5. On a scale of 10, with 10 being very likely, the likelihood of their taking another CS course ranges from 4-9.  I thought that was pretty good.  I can handle a moderate likelihood of taking a CS course.  Heck, after my own first course in college, I never wanted to see CS again. You can stop laughing now.

6. Lack of interest is certainly an issue, but lack of time to fit the course in is a bigger one.

7.  They all liked that the class was small (7 students).  I did too!  They emphasized that the small class size meant a lot of personal help, which is important to them.  If the class gets larger, and frankly, I hope it does, I’ll have to figure out a way to deal with that.  Pair programming or peer instruction.  Something.

It’s been fun to teach, for sure, and I hope to improve upon what I’m doing next year.

A discussion arose on an email list about teaching/using Google docs vs. Microsoft Word.  That discussion actually made it to Google+.  A teacher posted reasons why he teaches Google docs, the most important of which is about teaching concepts because applications change.  The conversation on Google+ is interesting and one I participate in at nearly every parent night.  The key point that comes up is that Office is used in the “business world” and won’t kids who use Google docs be at a disadvantage.  I’m in a slightly different situation in that all of our students are going to college.  I hardly think a lack of hard experience or a specific course in Word or the Office suite is going to keep them from a good job.  And using Word is not rocket science.  And, I always talk about and point out how similar docs is to Word.

Ten years ago, Google docs did not exist.  My students won’t be going on the job market for about ten years.  Who knows what will be around, what even Word will look like.  When I learned these things, you had to actually type in tags/codes to format documents.   Things have changed a lot, and I’ve adapted quite well, thank you.  So I teach kids to adapt.  I don’t focus on specifics of where functions are.  I encourage them to find it.  And I teach HTML and CSS and talk about how word processing used to be like that. And now, of course, you can make a web site (like this one) without even knowing those codes.  I still think it’s important to understand that there is code underneath all these programs, and that’s what I really try to emphasize in my classes, not how to italicize.

I’ve shifted my curriculum away from applications and toward Computer Science concepts as much as possible.  While there may be a group of students who would benefit from putting “proficient at Microsoft Word” on their resume, I’m guessing that “proficient at HTML/CSS” with an actual web site to show for it is going to put them a little more ahead.

Yesterday I kicked off CS Ed Week by bringing in two hip Computer Science-y women to talk to our high school students.  Kimberly Blessing and Lindsay Lindstrom joined us to talk about why they like Computer Science and what they do.  They also showed off some resources for students who are interested in learning about CS, but who may not have the time to fit it into their schedule.  They pointed out Web Start Women and TechGirlz, just two of the many organizations out there hosting classes in the evenings and on the weekends to give women and girls the opportunity to learn programming or other IT skills in a friendly environment.

Today, my Upper School students visited a 1st grade science class to show off their projects.  They showed how their robots took pictures, went through mazes, and played tag.  They really seemed to like it.  Tomorrow, they’ll take the same show to the Middle School assembly.

It’s a real challenge to get girls interested in CS.  We have a lot of smart girls in our school, and a lot are interested in entering fields related to science and math, but CS is not on their radar.  These kinds of things keep it on their radar.  I also am trying to put CS in their sights early.  Today I had my first session on computing with 1st and 2nd graders.  Eventually we’ll build robots.  And then maybe they’ll join the robotics club in middle school and then take CS in high school.  I hope that by keeping it on the radar throughout their years here, we’ll draw in a few more.  And I don’t necessarily want to create a ton of new programmers, but I do want everyone to know a little something about programming.  I’m encouraged so far, but this is a long-term investment that will take a while to bear fruit.

Today was my last day with my 6th graders.  I have them build web sites using Google Sites.  We learn a little HTML and a little CSS to see how these things really work, and then I set them loose.  One of my students’ mothers works at the school and she emailed me to ask how her daughter could share her site with family members.  I changed a setting and voila, she was able to share it with aunts and uncles.  I thought it was pretty cool that she would even want to.

I missed the last day of my 8th graders, but they, too, have shared their work on the Scratch web site.

My 7th graders, whom I will see one more time, created podcasts and videos, which were posted to the school’s web site.  We created QR codes for them, and we hope that admissions will pick a few to use during tours and open houses.

My Upper School CS class is working on some very cool robot projects, which they are going to demo for a 1st grade science class.

I like having my students share their work.  Yes, it’s a challenge sometimes to coordinate, get people online, and there are the inevitable technical difficulties.  But I think it’s worth it.  The kids like sharing, showing off what they’ve done, and they get excited if people comment on their work.  And I think getting them used to the idea that their work might mean something to someone else is important.

I was so sad to hear of Steve Jobs’ passing last night.  Of course I didn’t know him at all, but his company has touched my life in many ways.  My first computer was not an Apple, but in 7th grade, I took a CS class.  We had a TRS-80 and two Apple IIe‘s.  Mostly, we played games on them, and I remember playing Lemonade Stand on the Apple for what seemed like hours.  I didn’t see another Apple or MacIntosh again until college.  PCs dominated for a while in the early 80s.  I acquired an IBM clone my sophomore year in college.  When it collapsed my senior year, I used a friend’s MacIntosh to complete my senior thesis.  I was pretty hooked by then, so when I went off to grad school, I sought out the Mac Lab.  Yep, we had separate labs back then.

Throughout grad school, I was platform agnostic, and found my way around Macs, Windows machines, Solaris (unix-based), and NeXT‘s (a Steve Jobs creation).  Apple was anything but platform agnostic, of course, and until Mac OS X came out, I spent my time mostly in Linux-based computers.  But I’ve been a Mac person ever since.  I’m typing this on my MacBook, and on my desk is an iMac.  Next to me is an iPad, and up until this summer, I had a first generation iPhone.

Apple did a lot of things right, and many of the innovations they came up with are now seen across multiple platforms.  It can be argued that Apple made mainstream the GUI interface we now all take for granted, as well as the touchscreen interface that has many of our kids trying to pinch regular computer screens.  Apple engineered for consumers rather than for engineers.  I dare say consumer electronics would not be the same without them.  Without Apple, we’d be stuck with buttons and scroll wheels.  And though Google is mostly associated with cloud computing, Apple’s Mac Air pretty much insisted on having things stored in the cloud.

Had he not gotten cancer, Jobs would likely have continued innovating for another 20 years.  What great things will not happen because he’s gone?

Enhanced by Zemanta

I have just returned from the NCGS STEM Symposium where Mr. Geeky and I were on a panel together.  We had originally submitted a presentation on the partnership we’ve developed between his students and mine, but we ended up on a panel about the pipeline.  It was really interesting and a lot of fun to do.  Because we have children that can’t be left at home, we brought them along.  We left them at the hotel for the first half of the day, and brought them over in time for our session, the last one of the day.  They sat in the back taking photos of us and seemingly listening — hard to tell.  At the end, Geeky Boy asked a question about the relationship between teachers and students and got several responses.  He’s decided he likes conferences and wants to go to more.  We might have a future academic on our hands.

We also spent some time with a couple of teachers and another professor from Wellesley.  Mr. Geeky has new computing platform he’s working on that is not only good for college level teaching, but has appealed to K-12 teachers (me among them, of course).  A couple of teachers contacted him and we met them for dinner and talked CS curriculum and robotics.  They were very nice people and I look forward to sharing resources and working with them.  I’m jealous of their positions–they are in a full CS department where CS is required starting in 6th grade!  It sounds awesome.

The next day, we met physics professor, Robbie Berg from Wellesley who does a lot of work with robotics and microcontrollers.  He helped design the Pico boards I have played around with a bit, and that I’m working on a way to work into some of what I do with my middle schoolers.  We got to see his robotics studio, where they have not only a ton of legos and microcontrollers, but a laser cutter, a 3-D printer, and some other cool equipment.

We had planned to hang around the next day and do some sightseeing in Boston, but it started to rain, and we were exhausted, so we decided to just head home.  We’re planning to make another trek in that direction, perhaps later this summer.  I think this was a good trip for us and the kids.  It was really the first time they’d seen us in a professional setting, talking about our work with others.  They hear it a lot around the house, and, of course, Geeky Girl sees me in the classroom, but it’s different to see how other people react and to participate in the conversation. They both got a good sense of what college is really like, another bonus to our trip.

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.

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
A selection of programming language textbooks ...
Image via Wikipedia

I really like my job so far.  Even after the longest week ever.  This week was our first full week, really, and this week, we also had Academic Evening for all levels, where we met the parents of our kids.  I had to be present for two of the three evenings.  Mr. Geeky and I both attended the Middle School evening, he as a parent, I as both.  We were both there until almost 10.  And then, I went to the Upper School evening, and was able to duck out at 9 after my class met.  It was really nice meeting the parents.  Not only did I get to meet the parents of the kids I teach, but on the Middle School night, since the schedule they were following did not include my classes, I got to hang out with the refreshments and meet a random assortment of parents, all of whom were very interested in what I was doing.  They seem not just supportive of their students learning more about technology and computing, but many expressed a real urgency that their kids have more than a passing knowledge of Facebook.  They really believe that to succeed in this world, they are going to need technology skills.   And that is very cool.

Roughly half of my time is spent dealing with my current teaching responsibilities, either in class or planning for class.  I’m taking it one day at a time.  Even though I have laid out a plan for each class for the duration of the time that it meets, the daily plan I’m creating only one day ahead.  So far, I’m finding this works best for me.  The ideas are fresh in my mind, so I can move forward efficiently, and the kids can get the most out of their time in class.  In middle school, I only have 40 minutes for each class, and my plans are quite ambitious.  I have to be very certain of where I’m going.  It’s too easy for the kids to get sidetracked.

The other half of my time, I’m doing two things.  One, I’m working with teachers on using technology.  So far, I’ve helped a handful of teachers, and I’ve talked to many more about ideas and issues.  I am making a plan for increasing my involvement and presence for them.  The other half of my time, I’m doing mid- and long-term planning on two fronts.  One is in the faculty support area.  The other is in developing a Computer Science curriculum.  I have a partner in developing my faculty support plan, which is fabulous, and we hope that we will be able to create a committee of people who will participate in planning for the integration of technology into the curriculum.  As far as we’re concerned, the more voices we have participating, the better.  We need everyone’s ideas, not just one or two people’s.  We’re also hoping to involve the students, which will serve the dual purpose of giving the students the opportunity to learn more, and providing more support for faculty and other students.

The computer science curriculum development is a project all my own.  But it is, in some ways a continuum from the more applications-based technology curriculum I use with my middle schoolers.  In fact, there are certain things students need to grasp in the earlier classes that will help them should they choose to take a computer science course: parts of computer, the concepts of input and output, how the Internet works, the difference between local and remote storage, etc.  So I’ve been poring over the CSTA curriculum recommendations and our own curriculum and seeing if there are any gaps.  So far, we’re doing awesome.  Almost all the basics, including the things I just mentioned, get taught by 5th grade.  And I’m teaching programming concepts and problem solving using computers in 8th grade.  By 9th grade, they should be ready to explore these issues in depth.  Right now, I’m focused on creating an introduction to computing class, and figuring out what to do with our existing computer graphics/computer animation class.

Thinking about those two things raises the main tension that exists for me, and for a lot of people in my position.  Right now, the computer graphics class is focused on teaching kids to use a particular application to create graphics.  That is a common approach at the high school level.  At the college level, a course titled “Computer Graphics” is more likely to be about how computers create graphics through programming.  I’m going to include a little of that this semester and some next semester.  But herein lies the tension.  Should computer/technology courses teach applications or programming?  And, of course, there’s often an assumption that goes with that, that if you are a “computer science” teacher who teaches applications at a lower level that you can teach “any” application.  It is common in many small schools like mine to have the computer science teacher also be a more general technology teacher and/or a technology support person for the faculty.  There aren’t enough CS courses in most schools to have a full time CS teacher, and so the remainder of the time is filled with other duties.  I’m fine with that, as are most of the people I know who are in these same positions.  But it can lead to confusion.  And, though most of the parents I talked to the other day understand the continuum from creating web pages in 6th grade to programming in 8th grade and in Upper School, quite a few thought that I was doing system administration and desktop support for the school as a whole.  Even a few teachers haven’t understood or known that I actually teach courses.  As I move forward with the curriculum, I think this confusion will be resolved.

It’s interesting because I think if more people had a good foundation in computer science, they would understand that yes, most people in the CS industry (whether as an educator or not) are facile around computers and computer applications, but just because you’re a programmer or a CS teacher does not mean that you’re an expert in [insert application here].  And the reverse is almost always patently not true.  The person who does the day-long or week-long session on Excel, or Word, or even Windows 7 will likely not be able to program.  The person troubleshooting your desktop machine will likely not be able to program an application that runs on it or design a web site.  As in many fields, people have specialized skill sets.  I’m glad there are people who know the inner workings of a desktop computer, and I have benefited from their knowledge on more than one occasion, but I want people to be clear about the distinction.  I’m not going to come to your house and fix your computer, even though I probably could.  But it might take me longer and I might miss something important.  In my mind, I am first and foremost a teacher and teaching kids to use technology and the basics of computer science is full of complexity that even some programmers won’t get.  You can’t just put a programming book in front of kids and hope for the best.  You have to teach them all kinds of soft skills, like problem-solving, critical thinking, the ability to break a problem into smaller parts, and the fortitude to stick with a problem even when it gets hard.  Some “computer people” have those skills but have no idea how to get them across to others.  Teaching computer science, then, is more than just knowing a programming language or two, or knowing your way around a computer.  It’s a skill in an of itself and that’s very different from the skills someone who can troubleshoot a network problem might have.

Enhanced by Zemanta