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

January, 2008

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    Is Java the Problem?


    Recently an article by Dr. R.B.K Dewar and Dr. E. Schonberg called "Computer Science Education: Where Are the Software Engineers of Tomorrow?" really got some discussion going. The authors brought up a lot of what they see as problems in computer science education and they placed a good bit of the blame on using Java as a first programming language.

    There was a lot of discussion on the Advanced Placement Computer Science mailing list, a lot of professional developers I know also sent it around, and of course there has been discussion of it in various blogs. I highly recommend the response by Michael Kölling, Senior Lecturer at the Computing Laboratory, University of Kent. Michael and I have had our disagreements in the past but his discussion of this article is pretty much spot on.

    The complaints that Dewar & Schonberg make against Java are just as valid (or not) against the .NET languages like Visual Basic and C# BTW. But the real problem is not the first language but the overall curriculum (which is one of Michael's points.) The problem is not the tool but how it is used.

    As I see it the university curriculum has gotten too big and complicated. No one  wants to leave things out but there is limited time in a four year degree. Some have talked about making more CS programs five years long. That has some problems. The answer I see it to move more computer science into the high school grades.

    Think about what it would be like for a math major if his first exposure to algebra, trigonometry and geometry was in the freshmen year in college. Unthinkable isn't it? And yet for many students that is essentially what we do with computer science. We have computer science majors who never took a programming or other real computer science course in high school. Or perhaps they took one course - maybe APCS or perhaps a BASIC programming course. Is it any wonder that CS 1 is a very basic sort of course? Is it any wonder that retention is such a problem?

    High school students should have the opportunities to do more. I know that they can do more. I have had many students over the years who took two full years of computer science, learned several programming languages, and were well prepared to jump in at a higher level than many of their peers when they got to college. I know many other teachers who have had the same experience.

    Wouldn't things be a lot better in college if students arrived knowing how to program and program well? Wouldn't it be better if the first CS course majors took is something that sophomores (or second year students) took today? I think so.

    Of course there are difficulties. There is a real shortage of well-trained CS teachers in high schools. And of course there is a lack of standards that allow students to get graduation credit for computer science courses. So this is not an easy situation. But I do think that we have to start thinking of computer science as a liberal art and find ways to teach it more and better in high schools.

    I would love to see AP CS use C or C++ by the way. Great stuff. Pointers is important for example. But as a first language C++ is not a good idea. The first language has to be able to build interest and cover the simpler more basic concepts. Moving the AP CS program to C++ (again - I taught C++ as an AP language in the past) would not be a good idea without previous course requirements using a better first language. Just my opinion - I'd love to hear others.

     [Note: I see that Barb Ericson has a nice reply to the origional article here at the CSTA blog.]

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    A Stopwatch Object in .NET


    Did you know that there was a Stopwatch object in .NET? Me either. Apparently it was added in the .NET Framework in version 2.0 and no one told me. Imagine that.

    Seriously though I have often had to add some code in various projects to understand how long an algorithm was taking to execute. Generally this meant a query to the system clock in some way, saving the current value (after figuring out what data type and units of measure it was using), then checking the value again later and doing some math to figure out elapsed time. Sure it was doable and often I wound up creating some set of functions to make my life easier. But it was a bit of work to teach beginners how to use it. Suddenly my life is easier though.

    The documentation for the Stopwatch class in online here. There is even sample code for using it in both Visual Basic, C# C++, J# and JScript. Check it out. I'll bet you'll find it a lot easier to use than a lot of other things you may have been using to time activities.

     By the way there is a survey going on about the Education blogosphere so if you are an education blogger you may want to participate.

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    Very Silly Games (for XNA Game Studio Express 2.0)


    I must confess that I am not a serious gamer. I am not serious about playing games and I am not all that fond of games that are too serious. I'm more interested in creating games than in playing them but honestly I don't want to work all that hard on it anymore. So what I am always looking for are simple and light weight games to create and/or play. So obviously when a site called Very Silly Games opens up it gets my attention.

    Rob Miles has opened this site. He claims  that it is not a blatant attempt to promote his new XNA book and I believe him. (I typed that line with an almost straight face.) The one indisputable fact though is that he has a couple of completely silly game samples there already.

    From his introduction:

    Welcome to a world of silliness. Ever wanted to race your Xbox 360 gamepads? Indulge in silly sixteen player button bashing madness? Discover the joy of "Zero Graphics Gameplay"? Learn how to program in C# using your Windows PC and even your Xbox 360? This is the site for you.

    Over time we are going to build up a "Library of Gameplay silliness" from which you can pull down fully working XNA games you can play instantly on your computer or, once you have joined the XNA Creators Club, on your Xbox 360.

    I've long thought that too many of the example projects for XNA were a bit much for complete beginners. These projects look like what I have really been looking for. I'm interested in what others think of them as well. Are these useful for beginners?

Page 3 of 8 (24 items) 12345»