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

July, 2006

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    Running Late To NECC


    I am supposed to be in a hotel in San Diego right now. But I’m not. I’m in a hotel in Atlanta. There were a series of hardware and weather issues that conspired to keep me from getting to where I need to go. But I should be at NECC tomorrow – if all goes well of course.

    The amazing thing is how all of the rescheduling, rerouting and taking care of customer service is all possible only because of computer networks. I can’t even remember nor can I imagine how these things were handled prior to today’s networks. I think that I may bring that up for discussion with some group of students some day. I think that just asking them to think about a system that complex will be a great mental exercise.

    What other complex computer systems do you think we take for granted until something goes wrong?

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    A New Liberal Art


    I found a great post yesterday. Jim Heynderickx writes about a Computer Science K-12 session at the PNAIS TechShare. One of his comments really resonates with me.

    What’s missing is basically a new liberal art– that of algorithms, symbolic reasoning, logic and programming experience. Math departments will acknowledge the importance of these “ways of thinking,” but normally these experiences are not part of their curriculum. With this experience, students can see and use computers in much more relaxed and sophisticated ways.

    And maybe we need to think of Computer Science fitting in with the Liberal Arts. Maybe it is that affiliation with hard science that is scaring a lot of teachers and students away from it. But clearly, to me at least, we need to start thinking about getting more ways of thinking taught to students. I also agree with Jim that having a better understanding of the way computers work (and maybe that means a bit of hardware as well as software knowledge) is going to help students and adults be a lot more innovative and successful in the way they use computers and computer applications.

    One doesn’t have to know a lot about how engines work to drive a car. Or how the suspension works to get a driver’s license. But that is all about the very basic way in which one uses a car. Someone who really wants to get the most out of their car has to know a lot more than what is required for the license test. And that is where we are getting with computers. The low level understanding most people have is not enough for the future. We need to educate students to a higher level or understanding and innovation. Adding some real computer science to the curriculum may be a huge step forward.

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    A Variable By Any Other Name …


    Recently there have been some comments in the Advanced Placement Computer Science mailing list about the use of variable names for parameters in sample code and code used in the exam. The objection is to using a simple one letter variable name, usually “x”, as a parameter name. Generally teachers try to model good practice and in the case of variable names in general and parameter values in particular that means using meaningful names.

    We all get lazy or rushed at times and sometimes we all use variable names that are not very meaningful. But I agree with the email writers who say that examples that are going to be widely used should have some thought put behind variable names. At the very least a one letter variable should stand for something. O for object perhaps. D for Double. N for name.

    Variables used as loop control variables don’t always have to mean anything. Oh it might be nice to use “index” or something like that but I’m not sure it adds a lot. Other variables, especially those that pass information to methods or function calls or are used outside a very small block of code should definitely have meaningful names. Teachers generally put a lot of thought into code used for demonstrations or questions on quizzes. While it might be tempting to save time on the variable names I think that is a bad idea. Names used for classes, methods, functions and any type of object should also have a good name. This is not a place to take shortcuts. We need to make sure that students learn to write self-documenting code as early as possible. If we don’t make it a habit we can’t expect students to make it a habit either.

    Speaking about loop control variables, back when I started programming, FORTRAN any one, space was at a premium and we often used short variable names. in FORTRAN any variable that started with the letters I through N was automatically an integer unless declared (using a DIMENSION statement) otherwise. For this reason the letters I, J, K, L, M and N were widely, perhaps universally, used as loop control variables. This practice seems to have continued to the present day even with languages without implicit variable types based on names. Is it all the fault of old FORTRAN programmers? Could be.

Page 8 of 9 (26 items) «56789