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

March, 2010

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    Newsletters for Computer Science Teachers


    Maybe you are the sort who likes their news to come on paper. Or perhaps you just like your news in regularly scheduled chunks. Perhaps you like someone to do gathering and editing for you. Or perhaps you are looking for an online news and sharing source for computer science education news and information. What ever your preferred method of getting news is there is likely a source for you. But you may not know about it yet. I have a couple of sources that I like to follow and thought I would share them with you.

    The first one I’d like to highlight is the CSTA Voice. This newsletter comes out about every two months (it used to be quarterly) in both hard copy and softcopy. This is the “Voice of the K-12 Computer Science Education and its Educators” from the Computer Science Teachers Association. It comes to all members and membership is currently free. Join the CSTA here. The most recent issue of the Voice as I write this is Volume 6 issue 1: International CS Education

    SIGCT which is the computer teachers special interest group of ISTE has a monthly newsletter that is delivered electronically via email. You can also read back issues of the SIGCT newsletter on the SIGCT wiki. These newsletters are loaded with links to professional development opportunities, helpful resources and updates about the Journal for Computing Teachers. The JCT is “a K-12 oriented online periodical where the emphasis is teaching about computing.” The JCT is published by SIGCT on a quarterly basis. More information about SIGCT may be found at the ISTE SIGCT website.

    There is also a very popular discussion mailing list sponsored by the College Board for Advanced Placement Computer Science teachers. The AP CS mailing list (College Board calls it an Electronic Discussion Group) has hundreds of members who ask and answer questions about teaching the APCS curriculum as well and many other topics of interest to teachers of computer science. If you are teaching java I think it is a must read. Even if you are not teaching APCS or even Java you can learn a lot from the discussions on that list though. You can subscribe to AP Electronic Discussion Groups (EDGs) at AP Central - the AP web site.

    Now there are also blogs. I highly recommend that you look into some form of RSS reader to follow blogs. Going to specific web pages on a irregular or even regular basis means a good chance of missing something or finding too many things at a time to read them all. It is also wasteful of time if the site hasn’t been updated. RSS readers make following blogs (like this one) a lot easier. I use RSS Bandit but there are many more out there. You can find out a lot about RSS readers at Wikipedia where there is also a comparison of feed aggregators. I hope you will subscribe to this blog of course. There are other blogs listed in the side of this blog on it’s home page. The CSTA recently posted a list of recommended blogs for computer science teachers as well. They’re all good ones.

    What are your favorite sources for news and information for computer science education? Please leave any I’ve missed in the comments. Thanks!

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    What does it mean to be a computer geek?


    Well Barbie has a new career as a computer engineer. She looks pretty cool in her Binary patterned blouse, Bluetooth headset, net book and PDA. Well there is that unreal figure and hair as well. It is Barbie after all.  Stacey Armstrong linked to an article titled Tech Industry Searching for Girls Gone Geek Is the industry looking for Computer Engineer Barbie or something else? Or more importantly does someone have to be some sort of geek to be a success in the computer industry? And what does it mean to be a geek?

    I’ve got a coffee mug that I purchased at the Microsoft company store a couple of years ago. On one side it says “geek” and on the other it has a definition

    1. Obsessive Computer User: someone who enjoys of takes pride in using computers or other technology, often to what others conceder an excessive degree
    2. Someone with greater than normal computer skills

    These are probably pretty common “definitions” and I suspect the work obsessive in the first definition scares quite a few people away from the field. Who wants to be seen as let alone actually be obsessive? Who wants to be excessive either? I think many people think of successful computer people as obsessive or excessive or generally having no life or interests outside of computers. Scary!

    But that is really not the way it is. Oh sure there are some people like that but there are people like that in any field. Most people with careers in computing have interests and lives outside of work and away from computers. Take Steven Holcomb for example.

    Steven Holcomb is a computer professional who is an avid gamer, a computer science major, and a Microsoft Certified Professional. He also has an Olympic Gold medal! He is part of the US Olympic bobsled team who won the first Gold medal for the US in bobsled in 62 years. Not the sort of geek you see on TV generally is he?

    Another non traditional computer person is Chris “Jesus” Ferguson professional poker player. He’s not typical for anything with his long hair, cowboy hat and dark clothing. But he has a PhD in computer science and founded one of the larger online poker web site businesses.

    And then there is Marissa Mayer from Google. She is one of the top technical people at Google and responsible for many of their best products. And yet she looks like she belongs in Glamour magazine as one of their women of the year. And there are many more women in technical roles at companies like Google, Microsoft, Intel, IBM and others. In fact Fran Allen from IBM was awarded the Turing Award which is pretty much equivalent to a Nobel Prize in Computer Science. Barbara Liskov from MIT is the most recent Turning awardee BTW. So women are doing and being recognized for doing great things as well. It’s not a “boy club.” Well at least not completely and it is becoming less so all the time.

    I like the second definition from above. Greater than normal computer skills. And I would add “and knowledge.” One doesn’t have to be obsessive. One doesn’t have to give up a life and stay indoors all the time. One can go run a bobsled for example. Or my winter sport of choice – snowboarding. Maria Klawe, computer scientist and president of Harvey Mudd College, is well known for painting water colors.  I have friends who are greatly into things like windsurfing, wood working, and many many other activities.

    One can be a little bit of a geek in terms of being successful in computer science – in industry or academia – and not fit the TV stereotype of either an over weight, social misfit or a “a man in a while lab coat with funky hair like Einstein.” Real people, normal people, social people, athletic people, even good looking people can be successful at computer science. The real message is that computer scientists do not fit stereotypes. And it’s s good thing that we aren’t all the same. The more different people in the field the better we will all be.

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    Say That Again in English


    One of the first things I do in the morning is check Twitter. I start with my calendar and my email of course. You never know what your boss may have sent you overnight when they are three time zones away. But after that I look at Twitter. Yesterday I saw the following message from Brian Hanks of Fort Lewis College in Colorado.

    @hanks_b Trying a new question type on next Java quiz: "Explain the following code in plain English". Can students see the forest for the trees?

    In most programming classes what we do is present a description of a problem in English or some other natural language and ask students to translate it into computer code. After all isn’t that what programming is all about? We convert a problem, or rather an algorithm that solves a problem, into language the computer can understand. We worry about making sure the computer understands us. And that is fine as far as it goes but how do we check ourselves? How do we know that the individual statements (the trees) result in a result (the forest) that we are looking for?

    The normal and perhaps the lazy person way is to run the code and see what results. But how often do we make the effort to translate the code back to English (or your natural language of choice)? I keep bringing up reading code as a way to make sure we understand what is going on and this is another way to do it. If we have students explain code in their own words we can check two things. One, and this is why it is useful on a quiz, is to make sure that students really understand what code does. We are checking that they are not just randomly (or semi-randomly) adding code in hopes that things will work.

    Secondly we are also verifying that an algorithm works – that it does what we think it does. If a second person translates some code we’ve written into a description we don’t recognize there is a good chance that the computer will not do what we expect either. Good code is readable by people as well as the compiler. Good code is clear and unambiguous.

    Of course this second point places a burden on a test/quiz writer. Are we modeling good coding practices in the code we ask students to describe? Or are we taking too many shortcuts in order to make the code “manageable” for the students? That’s an important question. It is not always (or perhaps even often) easy to show complex code constructs without creating an artificial code example. As instructors we have an obligation to make sure students know the difference between good code and artificial examples. Even still we risk falling into the “do as I say not as I do” trap. This is a problem for almost any type of student code project though.

    I’ve often used the “explain what this code does” or the “what does this code print out” sort of question on quizzes and tests. I think it works best on small code that explores the fundamentals of coding. For example “how many times does this loop execute?” But at the same time I like the idea of having students examine and explain larger pieces of code. Perhaps that is a form of essay question we could use with programming and computer science students? Something to think about.

Page 7 of 8 (22 items) «45678