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

September, 2005

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    On the decline in CS enrollment


    I recently found a pointer to an opinion article by Larry Peterson, Dean for the College of Science & Mathematics at Kennesaw State University, titled "Why Should I Invest in a Career in the Computer Science or Information Technology Field?" They are doing great things at KSU and I’m proud to be on the advisory board for their CyberTech program for high school students.

    Dr. Peterson took a group of faculty to India this past summer to learn how things are there in science and technology. One of the lessons they learned is summed up in the following paragraph:

    "There is no doubt that Indian students are much ‘hungrier’ in their search for knowledge and an education than students here in the United States. I came away, however, feeling that India (and ultimately China) is not our biggest challenge, but that apathy and misinformation will be more of a factor in our future competitiveness."

    Apathy and misinformation is running rampant with regards to futures in computer science. There are still great jobs in the US for computer science professionals. But at the same time if the US does not have enough CS professionals to handle those jobs industry will be forced to send more jobs overseas. I worry that the idea that there are no jobs could become a self-fulfilling prophecy.

    What are the facts? Quoting again from Dr. Peterson’s article:

    "Such perceptions are counter to industry projections and those of the U.S. Bureau of Labor Statistics who in fact predict that jobs in these fields will be among the fastest growing and highest paying over the next decade. In fact, according to the New York Times, "jobs that involve tailoring information technology to specific industries or companies like software engineers who make applications and specialized systems, have grown." Today, employment among IT professionals, has reached nearly 3.5 million by the end of last year according to the Bureau of Labor Statistics, surpassing the 2000 high when the technology boom peaked."

    And you know what else? Jobs in the computer industry are often fun, interesting and even exciting. We just need to get the right messages out to students, their parents and the people who are not funding enough CS education in middle and high schools.

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    It's too complex!


    This is a rant of sorts. I've been reading a series of messages on a list server for computer science teachers. One of the claims that comes up on a regular basis is that professional IDEs (Visual Studio and Eclipse) are too complex for beginning students. There are too many options and students get lost and confused. One teacher says that he spends a lot of time telling his students "DO NOT touch anything I haven't shown you in class."

    Why would you tell them that? When I taught using Visual Studio I never had a student get into something that could not be undone and many found interesting things. In fact I used to find interesting things, some of which helped me teach better, from experimenting on my own or from observing students. One of the things I like most about a professional development tool is that it gives the students more of an opportunity to learn on their own.

    Somehow in 8 years of teaching I rarely ran into students who found the IDE too complex or confusing. Not the professional Borland we used when I started or Visual Studio later on. Even high school freshmen seemed to have a pretty easy time dealing with the IDE. Students seem to be expert at filtering out distractions and focusing in on what they need to know. Often they are better at it than adults. If anything, I found it harder to get some students to try new things than anything else. They seemed to prefer to stick with a subset of what was available.

    There are times when I wonder if the complaining teachers are projecting their own confusion on their students or if they just want to believe that “kids aren’t ready” for this level of tool.

    One does have to spend some time teaching an IDE and that is a distraction from what a teacher wants to teach. To me that is another reason to use a multi-language IDE like Visual Studio. One can teach the IDE in the first course and not have to teach it again in the following courses even though they use other programming languages.

    Now obviously a very simple IDE can be a useful tool. I can see using it at the beginning of a first course or for very young students. But I just haven't seen these confused students I keep hearing about from others.

    - Alfred

    Disclaimer: Part of the reason I went to work for Microsoft was that I really believe that Visual Studio is a great IDE for educational purposes. I didn't decide to like Visual Studio because I got a job at Microsoft.

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    Command Line Compile or IDE Compile?


    There are times when I have wondered if we would not be better off going back to punch cards. Really I am somewhat serious. Back in the day I remember people really paying a lot of attention to their programs before they passed them to the computer. After all if you only get one chance a day to compile and lots of time between compiles it makes sense to desk check. And of course we had come amount of JCL we had to set up to make sure things compiled correctly. This leads right into the ongoing debate about using an IDE versus using a command line compiler that is going on at the MainFunction forums. There is a good “back to basics” argument about command line compilers.

    The debate about command line v. IDE is, in some ways, a false comparison though. Compiling a program is only one of the things an IDE does. An IDE also does editing and debugging. I've read arguments against using a debugger when teaching programming. I completely disagree with those arguments. I think that a good debugger lets a student see a lot more about what is going on behind the scenes than any other method of debugging. And I really like the idea behind IntelliSense and strongly believe that it encourages experimentation. I've used all kinds of editors in my time from punching cards to line mode editors on paper printing ASR 33s to full blown, color coded, IntelliSense using Visual Studio. I think the IDE adds a lot to the process.

    Getting back to compiling, is there value in students knowing about the switches and other options? Absolutely. The question in my mind is when they should learn about them. I tend to think that the first course in not the time. Perhaps not even the second one. We don’t start students with assembly language after all. I have heard the argument that we should BTW.

    Back in the day when you had a large program (i.e. more than 16k of memory) you had to create overlay files for the linker. You actually had to tell the linker which modules needed to be in memory at the same time and which ones could be switched out of memory to make room for them. What an education in memory management and program organization that was. It forced programmers to organize their code and to be very cognizant about dependencies between modules.

    But you know I am not so sure we want to go back to that. We are content to let compilers, linkers and the operating system worry about all of that today. I would assume that at some point students learn a lot of that stuff, perhaps in an operating system class, but it is less important for the average programmer today. Likewise compiler options are less important until you are ready to produce code with real performance requirements.

    I can see a need to teach students about compiler options and what they mean. Is that easier to do with a command line compiler? I don’t know. I haven’t really tried to do that. It is an interesting question but first we have to get past the “when” to teach them.

    - Alfred Thompson

Page 1 of 4 (11 items) 1234