The Source for Java Technology Collaboration
User: Password:



Sonya Barry

Sonya Barry's Blog

What do we do about Computer Science education?

Posted by sonyabarry on April 09, 2008 at 02:08 PM | Comments (3)

Chris's blog about Cay's blog on Monday about the sad state of Computer Science education was really timely for me. I commented that day, but I have a lot more to say on the topic. I'm an engineer at Sun, but I've also been teaching Computer Science at a middle school for the past four years, and my masters thesis project was an intro to programming curriculum for 8th graders, using Java. (It was for an interdisciplinary degree - Computer Science with emphasis in Education.) So this issue is really something I think about all the time.

In the past few weeks I've met with someone from Sun's Global Citizenship Initiative. He's working on proposals to get a volunteer program set up so Sun's engineers can go out with the company's support and teach a CS curriculum either as part of a class or an after school program. He wanted to get some opinions from me about it, since I'm actually teaching it, and he also came in to my classroom on Monday morning to observe.

So what would I do if I had all the time and money to do this? My suggestions were to come up with some kind of portable classroom and to have a fairly rigorous mentor program for teaching engineers how to teach.

Why a portable classroom? Most schools still don't have a good computer science lab, and if they do, they aren't going to let a total stranger come in and install their stuff on it. More importantly, a volunteer is not going to want to spend their time installing their stuff on it and troubleshooting while kids are waiting around for the volunteer to teach them something. It's a recipe for disaster. An Asus eee can run Java just fine, and at 40 pounds total, 20 of them could fit in a rolling carry on bag. Is this a steep price for entry? Certainly, but it's not unreasonable and those machines could each be used for several hundred classes.

Why a mentor program? Teaching is not easy. My first few months in a classroom were pure unadulterated hell. At that point I had no training. I hadn't spoken to a human being under the age of sixteen since I was in high school myself. I had no idea what my students were capable of. I also had no idea what I was capable of. I stuck it out because I had to - I was doing this part time as I started grad school and I didn't have a whole lot of choices if I wanted to pay my mortgage without flipping burgers professionally while I was in school.

I would have been a much better teacher out of the gate if I had been able to sit and watch somebody else teach what I needed to teach, and then somebody to give me feedback in my first few weeks. So this is what I think we ought to do - have an engineer who is interested in teaching pair up with somebody who has been doing it for a while. At first they watch, then they help, and finally they teach and get constructive criticism from their mentor-teacher.

With a program like this in place we could be consistent in both quality and tone. Will I get my wish? I have absolutely no idea.

At the end of this school year, I won't be renewing my contract to teach next year. I am sad to be leaving, because I love what I do in my classroom and I will miss the kids, but I need to focus on my "real" career for a while. I hope Sun can get something like this off the ground, because it would be great to be able to continue to teach without giving up all of my free time to do it.

Next time: Which kids should we be designing curricula and after school programs for, and what should we teach them?

Bookmark blog post: del.icio.us del.icio.us Digg Digg DZone DZone Furl Furl Reddit Reddit
Comments
Comments are listed in date ascending order (oldest first) | Post Comment

  • We don't need curricula designed around Java. Or, you could just called it a "programming class", and not "computer science".

    Posted by: euler23 on April 10, 2008 at 07:39 AM

  • Of course we don't need to build it around Java, but in the instance of Sun footing the bill, it's going to be Java for the foreseeable future.

    As a disclaimer - my thesis project was up and running for about 18 months before I was hired as an intern here, and the fact that I heard about the internship at Sun was a complete coincidence.

    Programming is at the heart of computer science education. I'm pretty sure neither one of us knows a "computer scientist" who doesn't understand the basics of coding. It is a perfectly appropriate place to start, and putting the computer science label on the class is appropriate as well.

    It's certainly possible to teach programming without getting into the other complexities of the field, but that gets pretty boring very quickly. Students ask questions that lead to other topics in computer science - memory limits, algorithm design, chip architecture - it all comes up eventually if you have the time to do it right.

    Posted by: sonyabarry on April 10, 2008 at 08:16 AM

  • Most CS curricula are not "designed around Java", but nevertheless, Java (or a similar language) is a pretty good vehicle for introducing CS. CS Ed folks have tried other approaches: breadth-first, Scheme, mathematical notation, etc. but they generally find it difficult to hold student interest. When you start out with programming, students can do something and see what happens, and that naturally leads to all those CS questions that you want them to think about. Of course, you don't want to run a "Java certification" course--that would be just as deadly in high school as it is in industry.

    Posted by: cayhorstmann on April 10, 2008 at 12:06 PM



Only logged in users may post comments. Login Here.


Powered by
Movable Type 3.01D
 Feed java.net RSS Feeds