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

November, 2007

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    Is Computer Science Dying

    • 13 Comments

    Well that is a pretty dramatic title. I didn't think it up myself though. I'm not so pessimistic. It is the title of a post I read recently though. There does seem to be a lot of bad news in the field of Computer Science these days. I also read recently that Cambridge University in England is having trouble attracting as many computer science students as they would like.  One quote from the article is interesting.

    Cambridge professors blame the dwindling enrollment figures on their field’s ongoing image problem

    Image problem? Well yes. Would you want to be many of the computer geeks you see on TV and the movies? And worse still there is the image of all the jobs going away. Scary stuff. And in fact there is a lot of evidence that the actual need for computer scientists is going up. Bill Gates who regularly laments on a looming shortage recently also brought up a desire to see more African-Americans and other minorities in the field. Now even if you see that as some sort of politically correct purely social goal or see real value in a diverse workforce I think most would agree that computer science offers a good career path for many people. It should be open to all regardless of race, gender or other attribute.

    But if I can come back to the article that started me off on this thread - the one called "Is Computer Science Dying" - one of the things I really like about it is that it addresses the famous quote by Edsger Dijkstra who claimed, "Computer science is no more about computers than astronomy is about telescopes." It's worth the read just for that discussion.

    My answer to the title question is that computer science is not dying. It is changing and the perceptions of it are changing. I think it is also rapidly becoming ingrained in more and more disciplines. It is like math in that even people who don't major in it are increasingly finding themselves in a position where they have to study it more than perhaps they originally thought. Rather than moving more into the hard sciences as an engineering it is becoming more and more a true "liberal art."

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    My Ideal First Programming Language

    • 7 Comments

    Long before I ran into graphical/drag and drop programming languages for kids like Scratch and Alice I was thinking about some thing similar. What I wanted was a tool that allowed a beginner to write their own programs without syntax and syntax errors getting in the way. I wanted something that would provide the programmer only a list of the options that were legal in the selected context.

    I envisioned drop-down lists largely because I am artistically challenged but conventionally I was along the right path. Of course the experiences people are having with Scratch and Alice are opening my eyes to a lot of things I hadn't thought about earlier.

    One of the problems I've heard a couple of people talk about is that while these tools don't allow one to do things that would be syntax violations they also don't tell the user why they can't do those things. I'd like to see something that both listed the allowable options but also to ask why other things are not allowed. Perhaps a "Why can't I ..." option for the user. This seems like something that would especially help students who are learning on their own.

    The other things is that variables are both tricky to create and to use in these tools. I'd like to see a way to easily create variables with names, types and initial values. And then of course we'd want adding them to algorithms and statements should be easy as well. Personally I have trouble dragging variables into little boxes in Scratch and Alice. I'd like to be able to right-click on a place and see a list of possible and legal variable options. I also think that warnings about possible interaction/conversion issues with different variable types (see my recent post on some Visual Basic conversion issues) would be useful.

    I'd like to be able to run bits of code without driver programs/routines like one can in BlueJ or Visual Studio's Object Test Bench. I like the idea of doing small unit testing early in the development process. I also think it would be useful for students to see how the little pieces work individually as well as collectively.

    And I'd like to see the created program be available in a variety of higher level languages.  Alice allows one to see a more complex version of the symbolic code and I understand that one day Java output will be available. I'd like to see a choice of languages that include C++, C# and of course Visual Basic. Since F# is coming to Visual Studio which will make it more widely available I like the idea of using this programming method with a functional language as well.

    Of course in my dreams one would be able to import higher level language code into this environment. But for practicality and manageability we'd likely to have to limit a tool like this to a subset of complete languages. 

    The other thing I would like is ease of combining multiple projects. With separation of UI and code using Visual Studio and Expression Design (part of the Expression Suite) and perhaps even Silverlight this should be manageable. In fact perhaps it would let designers create some simple code to work with their user interface designs.

    What would you like to see in a teaching tool? Are there things missing in Alice and Scratch that you'd like to see? Are there tools in other IDEs that should be included in your ideal beginning programming environment? What should be left out?

    Eventually I'd like to come up with something to ask Microsoft to build. Jump on in and help me out.

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    Carrot, Stick, Attract, Retain, Boys, Girls

    • 7 Comments

    Is the shortage of women in computer science caused by a failure to attract women or are women being chased away? That seems to be at the heart of some recent discussions I've been following on the subject.

    Recently one educator talked about using games as a carrot to attract women into the field. While some debated the effectiveness of this method another educator objected to the use of the term "carrot" and the idea that women needed to be attracted to the field. That educator teaches at an all female school which gives a different perspective of course. No one disputes that the number of women in the field is at a low that is not healthy but the cause is clearly up for discussion.

    On the "we're chasing them away" side I submit a list of "10 Programmers you'll encounter in the field" that I came across recently. While I don't think the list is intended to be all inclusive I find it telling that there are no types on the list that I can picture many people, let alone women, aspiring to be. Those are common stereotypes that are perpetuated by the media and I fear by some people in the field and they describe a very uncomfortable atmosphere. The popular media is not particularly helpful here either.

    To overcome some of that uncomfortable atmosphere, especially in education, there are resources available for teachers. Recently in the CSTA blog, Leigh Add Sudol posted a link to a practice guide from the National Center for Education Research. This guide lists five recommended strategies for encouraging girls in Math and Science. Leigh Ann has a great summary of the guide which I recommend reading if you make time for anything at all.

    Several years ago I attended a training event at Carnegie Mellon (where Leigh Ann is teaching these days) that included a lot of great information about how not to to scare girls away from CS classes once there were in them. I learned quite a lot and found that these techniques helped me with a lot of the boys in my class as well.

    One of the things we forget is that in the range of attitudes, confidence levels, and learning styles there is real overlap between boys and girls. Things that make some girls uncomfortable can make boys uncomfortable as well. Likewise some girls will like the same things that some other boys like. We have to make sure we don't lose site of the fact that stereotypes are not a sound basis for categorizing all students.

Page 1 of 9 (25 items) 12345»