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

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    Programming is for Girls


    Fair warning: Some gross generalizations and exaggeration for emphasis follow. But some valid points I think.

    I wrote my first computer program over 35 years ago. There were more women in the field back then. Not as many as their were earlier in the history of computers though. Programming was a woman’s job. The excitement, the glory, the theoretically “hard part” was in the hardware. So was the money. Computer hardware cost a lot more than computer software. Even in the 1970s when one of my professors told me that one day people would spend more money on software than hardware I was not so sure he was right. But of course he was. Good thing for me and my career. But as the money moved into software women were pushed out of the field. This was not a good thing on many levels.

    When I was a student I went to a really conservative university – girls had curfews but boys didn’t. It was a long time ago. The boys tended to spend a lot of time “after hours” in the computer center working on their projects. And during hours as well. The girls not so much. They spent less time in the lab and somehow seemed to always get their projects in on time and to get good grades. In fact they got as good grades as the boys who seemed to live in the computer lab. Weird no? Perhaps not. Also in my first job out of college, mid-1970s, there were a lot of women writing code. Not quite as many as there were men but close. And the women were older, mostly married with kids and at the end of the day they easily left their work behind. And they met all their deadlines with a seaming ease that I sat in wonderment of. What was up with that? I have a theory of course. We, in the west at least, socialize women to plan and men to, well, not plan as much. Think about a high school prom. Planning for the boy means remembering to buy a ticket, perhaps organizing a Tux and showing up on time. For a girl, a whole lot more. Just the day of the prom there is scheduling when the hair is done, the nails, perhaps the makeup, where in the mix does one actually get dressed. And oh by the way she probably made sure the boy got the tickets and his tux.

    This post was inspired in part by an article from Stanford (Researcher reveals how “Computer Geeks” replaced “Computer Girls”) and there is a quote from Grace Hopper that I find most interesting

    As computer scientist Dr. Grace Hopper told a reporter, programming was “just like planning a dinner. You have to plan ahead and schedule everything so that it’s ready when you need it…. Women are ‘naturals’ at computer programming.”

    Naturals? Maybe or maybe not. But we do force women at an early age to plan. The women I went to college with and the women I have worked with in programming jobs were all planners. My wife was a professional programmer for a number of years. Her programs pretty much always worked the first time. She was not interested in debugging. She was interested in getting things to work the first time. And so it goes. When I was teaching I saw a lot of boys (not all but a lot) programming by the “ready, fire, aim” method. Start throwing code together, check it, fix it, check it, check what the result should be and fix some more. Bug? Throw in some code and see if it fixes the problem. Girls did not follow this pattern as often. Think things out, understand the problem, plan a solution, code. test, hand in and go on with their lives.

    Some days when I listen to debates about computer science vs. computer engineering I wonder if the solution is just to get more women back in the field? We are seeing tools that are designed to teach and interest, interest perhaps being the more important thing, young women in programming. The man who got Kodu rolling has a daughter as do several of his team. It is no accident that the graphics are girl friendly (while not turning young boys off either). Alice has been used, especially story telling Alice, with good results with girls. Young girls seem to love building robots with Pico Crickets among other tools. I have heard about a lot of middle school girls getting into programming through FIRST Lego league as well. The thing may be to not scare them away later.

    Either way I think we need them. I do not think our male dominated ‘throw a lot of code against the wall” sort of design works. It may get us there eventually but it is wasteful of time. money and energy. Oh girls are not the whole answer. There are girls who “program like boys” and boys who “program like girls” but are we getting the right mix? I don’t think so. And besides we clearly don’t have enough top programmers (Computer science grads fielding 'multiple job offers')  and if as many girls as boys went into the field we’d be a lot closer to having what we need. Plus we know that mixed gender times are more creative, productive and (at least in my opinion) more fun to work in.

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    Four Key Concepts of Computer Programming


    Last week Rob Miles who is taller than I am, has more hair than I do and has an English accent all of which indicate he is probably a lot smarter than I am left a comment on one of my posts that lists his idea of the four key concepts in programming. He left to comment on Do We Need A New Teaching Programming Language BTW. The post and his full comment are worth the read. Rob’s list was:

    • Process data (assignment)
    • Make decisions (if)
    • Loop (do - while, for)
    • Use indexed storage (arrays)

    Among other things he said:

    If you can do these four things you can write every program that has ever existed. Sure, the code won't be pretty, but it will solve the problem. In my course we focus on algorithms at the start because this is where we actually create behaviours  [note classy British spelling which adds credibility] that solve problems.

    In all seriousness, Rob is a great teacher who also writes some really good textbooks. He really knows his stuff. All of that not withstanding I kept trying to think of a fifth thing to add to his list.

    I thought about input/output for a long time. But I/O is such a platform dependent sort of thing. It depends not only on the language but the operating system and even available hardware. Input via a key board is different from punch cards (remember those) and still more different from input via a Kinect sensor (let’s keep in mind that there is a future). As I recall the PASCAL standard did not specify requirements for input/output and left it to the developers for individual platforms. So that probably doesn’t fit.

    I thought about variables but that is sort of covered by process data and indexed storage. Even internal data representation which I see as a key computer science concept is probably not as key for programming. I have successfully used programming languages that only stored integers and strings. Well maybe there was a Boolean but I forget. I managed to write some useful applications anyway. Some even dealing with money.

    Recursion? How often do you really need recursion? And a lot of things that recursion is used for loops will do just fine for. So while one should learn recursion and a really good programmer should know how, and more importantly when, to use it I don’t think it fits the top four or five list.

    Would you add something? Remove something? Overall what do you think of Rob’s list?

    Note:  To subscribe to this blog please use as the RSS feed source. Thanks.

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    FREE Microsoft Certification Exam Vouchers For Students



    College student, high school student, any kind of student – sooner or later you will be entering the scary job market. how will you differentiate yourself from the rest off  the recent graduates? One way to boost the attention your resume gets is by getting industry certifications like the ones Microsoft offers. For a limited time, you can get a FREE Microsoft Certification Exam voucher code for select exams to help you get started. Microsoft Certification is designed to validate your IT skills and shows potential employers that you are motivated and focused on your career. It says you go beyond the requirements of your course work.

    Like new jobs, these vouchers are in limited supply so don’t wait! Visit today!

    Btw, In these videos some students talk about the value of Microsoft certification to them and their career hopes.

    I Voted Badge

Page 5 of 618 (1,853 items) «34567»