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

November, 2006

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    Just Add Imagination

    • 148 Comments

    I met a 12-year old programmer yesterday. He was on a field trip to the Microsoft Technology Center in Chicago with his middle school. He'd brought a USB storage stick with a program he'd written on it to show us. What he had written was a very cool web browser. He told me it included about 20,000 lines of C# code.

    He demonstrated the program for the group and I have to say he impressed a lot of people. This web browser had the features you would expect such as tabbed browsing but it had a lot of features I'd never thought about. For example it was a simple menu option to have the program look up the ownership of a domain using whois. And there were other options to get other bits of information about the web site as well. Frankly there was too much to see in a short period of time for me to absorb it all. I gave him my card and asked him to email me. Frankly I want to try his program out for myself. I also want to know more about how he did it as well.

    There were a couple of messages I took from this experience. One key message was that young students are very capable of thinking outside the box. They are quite adept at looking at a tool (in this case C# and the .NET Framework) and putting the pieces together in new and interesting ways. Another is that Visual Studio and the objects in the .NET Framework clearly make a lot of things easier to include in a program than ever before. This student was taking full advantage of them and had created a very powerful application.  The combination of opportunity, the right tools and a young, energetic creative mind is a very wonderful and powerful thing.

    I just wish we could introduce programming to more young students. This student is 12 but has already been programming for three years. Bill Gates started programming when he was 13 so this young student has a four year head start. Just imagine the possibilities.

    {Note: I have a brief follow up on this student posted as he enters high school.]

    [Note to Digg readers - please look around and read more of my blog. I'm glad you stopped by.]

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    That's not real programming

    • 2 Comments

    One of the repeating themes that came up in the comments in my post last week about a 12-year old programmer was that the student was not doing "real programming." Some of that may have been snobbery. Some of it may have been jealousy. Some of it may have been a real belief that some things that look to non-programmers are not really sophisticated or complex enough to count as real programming.

    One programmer I know said (and I'm still not sure if it was in jest or not) that programming in any high level language was not real programming. Real programming she insisted (yes she) was machine language programming. Not assembly language either. No she meant setting the ones and zeros that make up a machine language instruction. She talked about developing banking system programs for a device that allowed for fewer than 300 total instructions. BTW if you don't know the difference between instructions and lines of code you probably are not a really programmer yet. (I'm about three quarters serious in that one.)

    There are also a lot of people who say that Visual basic is not real programming. Or that using library routines or objects is not real programming. Or even that programming for Windows in not real programming. I think that a lot of this is just really silly.

    To me programming is more about a way of thinking than about the specific programming language, compiler, development environment, or operating system. Programming is about developing an algorithm that solves a problem and then implements it so that a computer can work on it. That's it. It's as simple as that or as complicated as that.

    I've done a lot of different programming in my career. Some operating systems development, some applications, some stuff in very high level and 4th generation languages, and a bunch of stuff in various assembly languages for various architectures. It's all programming to me. The difficulty should never be in the tools/languages one uses. It should all be about the problem one is trying to get the computer to execute on. We all need to get past the idea that some languages or tools are intrinsically wrong/bad or "not real programming." Pick the best tool for the specific task, the specific hardware or the specific problem. The algorithm is the programming not the implementation of the algorithm.

     

     

    Technorati tags:
  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    What is so scary about programming?

    • 6 Comments

    It seems fitting to talk about scary stories so soon after Halloween somehow. Yesterday I read a very interesting post by Mark Guzdial at the NCWIT Site. In it he talks about running into significant numbers of college students who are terrified of programming. he talks about students trying to drop required courses to avoid having to do programming. That's pretty scary - especially at a top school like Georgia Tech!

    What is it about programming that scares people? I'm not a good one to answer this question because I find programming one of the most fun and interesting things I do in my life. And that is not because I have a boring, completely tech dominated life either. I enjoy kayaking, surfing, snowboarding, and many other activities both indoors and out. In fact most of the professional programmers and computer scientists I know (and after 30+ years in the business I know a lot of them) have very balanced lives. Programming does not ruin people.

    I wonder if the fault is in part that people have promoted programming as hard to try to keep it exclusive. Not so much in recent years but in the past. Is it because programming really is hard? I think not. Or is it because we just teach programming wrong?

    One of the things I worked very hard on (and continue to work hard on) is to help students achieve some early success with programming. One of the reasons I really like Visual Basic .NET as a first course language (and this applies to C# as well) is that it is very easy to create a simple program that looks like a "real Windows program." The program doesn't have to be complicated or do anything very difficult but if it looks good - "wow, it has buttons and everything?" - students seem to be less intimidated by the process and more willing to move on to the important things.

    Teaching is in many ways about removing barriers to learning. Drag and drop programming languages like Alice and some of the robotic programming languages like those used for Lego Mindstorms and the Microsoft Robotics Studio remove the complexity of syntax. Syntax can be a big barriers to learning how to program. The kinesthetic learning project like those in Computer Science Unplugged that I talked about yesterday can help remove some of the fear of computers or the assumed complexity of the concepts. Drag and drop form design and the friendly syntax of Visual Basic .NET can also be helpful to removing some of the complexity barriers.

    But I think we have to do a lot as teacher to reassure students that programming is not so scary or difficult as they may think it is. Is is completely easy? No it's not but is it really so much harder than writing a good five paragraph essay? I think not. It's a matter of proper teaching and an openness to learn.

    Programming is something that just about everyone can learn. That is not to suggest that everyone can or should become a professional programmer. But you know we don't expect every child who learns to play soccer (football) to play in the World Cup some day either. Are children frightened away from playing sports because of how good the professionals are? No they are not. They understand that they can learn the game well enough to enjoy it and get some value out of it. Programming is the same. It can be a lot of fun and it can be a very valuable skill - as much a way of looking at and solving problems as anything they will learn in most other subjects.

    But first we have to get them to not be afraid.

     

    Technorati tags: , ,
Page 1 of 7 (20 items) 12345»