Computer Science Teacher
Computer Science Teacher - Thoughts and Information from Alfred Thompson

August, 2008

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    GridWorld RolePlay Online


    If you are an AP CS teacher one of the things that is an important part of your curriculum is the GridWorld case study. The case study is one of the key pieces of the APCS exam and understanding how it works and being able to use and modify it is very important for student success. For a number of years now running through the case study and its classes and interactions using a role play has been a helpful and useful process. I’ve been through the current role play at some workshops and it can also be fun. The value of getting students up and moving around is also useful I think.

    Ben Chun has now put the script and process of the GridWorld role play into an online HTML format. he is not completely finished and is looking for feedback. You can find a temporary link to the role play here but I recommend visiting Ben’s blog for current news and to leave comments. Eventually Ben plans to package this up in a zip file for local use. I encourage teachers who are more familiar with the case study than I am (I don’t teach the case study) to help fine tune Ben’s version.

    This is of course yet an other example of the way teachers can support each other using blogs and other web tools. I appreciate teachers like Ben making their resources available to others.

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    Friday Misc Links – August 8 2008


    Found a few good nuggets to share with people.

    Robots If you are in to robots or know someone who is I saw this announcement from the Microsoft Robotics team blog.

    The RoboChamps Amazed Challenge is over and the winners have been announced. However, the Challenge continues with the Amazing Second Chance Challenge that closes on the 11th August 2008. Download the revised Amazed Challenge from the Downloads page now.

    The second challenge in the series, the Sumo Challenge, is now open and the environment can also be downloaded from the Downloads page.

    This competition is all online and free using free software. Perhaps something to get your FIRST Robotics software team in gear during the fall?

    Professional Development From CSTA Board Member Brian Scarbeau I found this link to presentations from the 2008 CS & IT Symposium. (My trip report from that event is here BTW.)  Besides Brian’s talk on DotNetNuke you’ll find presentations on gender issues in CS, the AP CS Gridworld case study, information on how Google search works and Maria Klawe’s talk on Getting Future Leaders to Learn Computer Science and many more.

    OneNote Teacher Tools Mike Tholfsen talks about sections 3 and 4 of the OneNote 2007 Toolkit for Teachers. This toolkit comes from the new OneNote site for educators.

    Games The Popfly Team introduced a bunch of Olympics theme games by the amazing Adam Nathan. Thanks to Paolo Barone who organized this list I swiped from his blog. Paolo is part of the UK academic team and is a great guy whose blog I try not to miss.

    Don’t forget that you can see, learn from and modify the games on Popfly. Here is one to start with.

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    The Language is NOT the Important Thing


    Invariably when anyone posts about “the right” programming language to use in a first course a lot of discussion ensues. People are notoriously opinionated about this topic. I am not exempt from this and I admit that I have fallen into this trap in the past. But as I talk to people, read peoples thoughts in blogs and papers, and think more seriously about the first computer science or programming course the more I am coming to the conclusion that the programming language is not the biggest factor in success. Not in success in that first course and definitely not success in a career (academic or commercial) in computer science, Information Technology or just plain programming.

    I’m starting to conclude that the real important things are the instructor and the curriculum – especially the contexts that are used to introduce the concepts. Let’s start with the instructor.

    Teachers are always an easy target but most of the time they are unfairly criticized and I don’t mean to beat up on people. There are a lot of really amazing teachers out there and I’ve been privileged to meet and work with a good number of them. I do think though that there are a number of things that get in the way of great teaching in computer science. And there are a number of things that I think are required to teach computer science well. Most of these things are probably in teaching any subject though.

    1. Enthusiasm – Students learn (by example) the enthusiasm for the subject from their teacher. A teacher who would really rather be teaching Calc BC but who feels stuck teaching introduction to programming is going to turn students right off. You cannot easily hide that sort of thing. Likewise if you really hate COBOL you are going to transmit that dislike to students. I had a wonderful talented teacher who didn’t like COBOL. I learned but not as much as I did in other courses the same teacher taught. Had he not been such a superior teacher I might not have learned at all. It takes a lot to overcome a lack of enthusiasm.
    2. Knowledge – Somehow I don’t think it is possible to teach more then a fraction of what we know. If a teacher knows twice what they need to teach they are probably golden. But staying a chapter ahead of the students is not going to be good for either the students or the teacher. I’ve been there and it was tough. In the case I did it only the language was new to me so I like to think the students got some good out of it but it would have been much better if I’d been more expert in the language. We’ve got a lot of high school computer science teachers who have only a shallow knowledge of the subject. They took a programming course 15 years ago in FORTRAN and now they are trying to teach Java. It’s just painful for everyone involved.
    3. Openness – By this I mean a couple of things. They need to be open to trying new things. They need to be open to saying to their students “ok we are going beyond what I know so we’re going to learn together.” They need to be open to seeing students as partners in learning. Now some of you are going to say “wait! weren’t you just talking about needing knowledge?” Yes, but no one can know everything. Plus in computer science things are constantly changing. We expect teachers to know where to go for answers, to know how to learn and to have a background that enables them to know what questions to ask and to recognize the right answer when it bites them.  If a teacher has proved to a student that they have a great base of knowledge they will continue to respect a teacher who is willing to admit they don’t know everything. Not only that but a teacher who encourages students to go beyond the course syllabus and even what the teacher knows teaches a student to be fearless in learning. To me that is a powerful lesson.

    Now to talk about context a little. Converted math teachers love to teach the math side of programming. Not every student is a fan of math though. OH sure a serious computer science student needs math but why turn students off in the beginning by hiding the other contexts where computer science is used? I’ve become a big fan of the way they are doing things at Georgia Tech. I’ve heard Mark Guzdial talk about their program a number of times now (Visit this blog post of his to find a link to the slides he used at the recent Microsoft Research faculty Summit) and I must say that the results they are getting are impressive. In short they have several different first programming/computer science courses. It’s different for CS majors, non-majors and engineering majors.

    Now not every school can have several different first level courses. There is no way that will work in the average high school for example. But I do think there are lessons there that high school computer science teachers can use. I think that finding a context that works for students, one that they can get as excited about as the teacher can, will work great things for many schools. Maybe it is robotics or media manipulation (which Georgia Tech is having great results with) or genetics (which is working at a couple of colleges including Wheaton College in MA), or even game development which is working at high schools and universities around the world. Or maybe something else. In some cases it may be possible to mix contexts, especially in full year courses, to allow students to find the context that is meaningful and motivating for them. that one will probably take a big dose of openness and fearlessness. :-)

    Does the language have a lot to do with which context on chooses? Probably not that much. There isn’t much one can do in one language that one can’t do in many others – at least not in a first course. You want an IDE that students can use. You want a language that allows one to teach/learn the concepts of a first course. But really a first course is not about preparing a student for a career. A language that might get them a job at one company might be useless at another. Quality of instructor and contexts that inspire, interest and motivate students are going to have a lot more value in the long run than what language is used.

    Let’s also not confuse the first course with a whole curriculum or as the be all and end all of a computer science education. Just because a first course uses one language and one context doesn’t mean that’s all one needs or uses. Along those lines, Mark A. Graybill has a great post on the value of Learn[ing] Another Language that I highly recommend. I really believe that people really need to learn more than one programming language and that ideally they should learn them early in their education. I just discovered Mark’s blog (An Infinite Number of Cats on Keyboards) and there are a lot of interesting posts there.

Page 6 of 8 (23 items) «45678