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

May, 2007

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    Computer science, business grads snag highest average salaries


    The CSTA Blog reproduced an article from The Daily Tar Heel, the student newspaper at the University of North Carolina the other day. Long story short? The current college graduates who are getting the big paychecks are computer science students first and business students second - and business is not a close second either.

    According to the annual First Destination Survey released by University Career Services, May 2006 graduates with a degree in computer science had the highest annual mean salary at $60,000. Graduates with a degree in business administration were next on the list with an average salary of $47,534.

    I hear computer science professors telling me they are getting more and more calls from companies looking to hire computer science graduates all the time. They don't have enough students to recommend for all the jobs that are coming in.

    Of course UNC has an outstanding program and their graduates are likely to get jobs first and get the good money. But there are far from the only good school out there and others are reporting similar results. Students with a solid education in computer science are in high demand and there is no real indication that is going to change any time soon.

    My site was nominated for Best Education Blog! Please vote!

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    Programming Proverbs 18: Use Comments


    Is there anything so obvious to an experienced programmer that is so hard to get across to students than comments? Students know that they are so smart that they will remember everything about their programs. And of course they think they are smart enough to figure out any other program they come across. I used to try to get across the point of comments by telling this true story.

    Years ago I wrote a cute little program to generate geometric shapes spinning larger and smaller. I wrote the program in FORTRAN on punch cards. It ran on a drum plotter. This meant that I had to explain not only punch cards but drum plotters. See how I snuck a little computer history into the story?

    In any case I decided to write the program again but this time in Visual Basic and for display on the screen. Being a smart guy I would do it from memory. Everything went great until the first display came up and it was all wrong. But it was wrong in a vaguely familiar way. I remembered making the same mistake 20+ years earlier. What I didn't remember was how did I fix it.

    The good news is that being a pack rat I had the original deck of cards in the attic and was able to find it. Sure enough I had a few comments in it and one of them said "this function takes degrees in radians." Yep, that was it - I was using the wrong unit of measure. A few minutes later and my program was doing what it was supposed to be doing. I have no idea how much time that one comment saved me but it was a lot.

    This story usually makes an impression. Does it always get students to write enough comments? No, but there is improvement. And they remember the story.

    I think the key learning there is that if something gives you trouble, if it is confusing or if it caused you problems with debugging or getting the algorithm right than you should comment it. Anything things that costs time once will cost time again if not explained properly. Do that and you will thank yourself later. Or someone else will thank you and that is a lot better than then cursing you out.


    This is the eighteenth of a series of posts based on the book Programming Proverbs by Henry Ledgard. The index for the series is an earlier post and discussion of the list as a whole is taking place in the comments there. Comments on this "proverb" are of course very welcome here.

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    Irrelevant Programming Languages


    Mark Hendrickson from O'Reilly has an interesting review of the market for computer books in a four part series. The fourth part examines the programming language book market. I have no doubt that it is a valuable discussion for people who are thinking about what sort of programming language book to write but I'd be careful about extrapolating it too far for other things.

    I'm particularly interested in some of the languages that make the list as "Irrelevant Programming Languages". Specifically Ada, Alice, LabView and FORTRAN. Relevance is a relative term in this case. I think there are markets, parts of the computer industry, where Ada, LabView and FORTRAN are still important and highly relevant. Do they have the sort of market share that the .NET languages, Java or C++ have? No, but in the markets where they are important they are critically important.

    I suspect that for some military and aerospace contractors having Ada on ones resume is going to open a lot of doors. Likewise, LabView is being used in a lot of embedded and robotics applications. FORTRAN still seems to be the language of choice for a lot of mathematical and scientific programming especially where parallel processors are involved. But no, there is not a huge market for books that teach those languages. National Instruments has a lot of training materials for LabView. And the shelves of companies that use FORTRAN and Ada are no doubt heavily loaded with all the reference and learning materials for those languages that one could possibly want. In fact my own bookshelves in my home office are fairly well equipped with older FORTRAN books.

    And Alice (and Squeak which is on the list and Scratch which isn't) are not industry languages as much as they are teaching languages. learning them is not an end in themselves but a tool or stepping stone to other things. Does that make them irrelevant? It depends on your definition of relevant.

    In the long run deciding what languages one learns is more complicated than just looking at what programming language books are selling the most copies. All software development is not created equal in the sense that they use the same programming languages. One needs to take a holistic approach. What sort of development do you want to do?

    If you want to do systems programming (operating systems, compilers, etc) then C/C++/C# are where you want to focus. Are you a math/science person? You'll want at least some familiarity with FORTRAN even if it isn't your main thing. Likewise if you are thinking that finance/banking/insurance/accounting are your thing you should know COBOL if only to understand existing systems. Are you thinking your life is all about the user interface? Best learn some Visual Basic. I wouldn't avoid Expression either - that is where UI is going in my opinion. I think you get the picture.

    And of course one thing you'll really want to do if you hope for a long career is to learn as much about different programming structures and paradigms as possible. I highly recommend a course or two in Programming Languages as a topic. Learn the things you need to learn to learn what ever comes next. because the future is coming quicker than you think.

Page 1 of 9 (26 items) 12345»