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

March, 2008

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    Bill Gates Calls For More Technology Education


    Bill Gates testified before Congress last week (transcript here). Most of the news reports focused on his calling for more H1B visas and left out some of what I think are the more important things he said. First among those is that we need to improve our education system and train more people is Science, Technology, Engineering and Math fields. He also talked about needing to spend more money on basic research. Improving education is an area where Bill Gates, through the Bill & Melinda Gates Foundation, has put his money where his mouth is. One can argue about the efficacy of the methods he is promoting (and many do) but I think its pretty clear that he's serious about intending to help. A well educated population is key to a future that depends on innovation. In his testimony Bill said:

    "I know we wall want the U.S. to continue to be the world's center for innovation. But our position is at risk. There are many reasons for this but two stand out. First, U.S. companies face a severe shortfall of scientists and engineers with expertise to develop the next generation of breakthroughs. Second, we don't invest enough as a nation in the basic research needed to drive long-term innovation."

    A scary number of students either do not graduate from high school or graduate from high school not really being ready for college. According to Bill's testimony:

    "Thirty percent of ninth-graders and nearly half of African-Americans and Hispanic ninth-graders do not graduate on time. Fewer than 40 percent of high school students graduate ready to attend college."

    This is not a simple problem to fix but it sure does need fixing.

    After the testimony before Congress Bill Gates was interviewed by NPR (read a summary and listen to the interview here) and they also spent a lot of time on the H1B visa issue. Lots of people seem to think that the H1B issue and the issue of allowing students who come to the US to study to stay in the US after graduation is all about saving money or somehow shortchanging native-born Americans. Hiring foreign workers generally costs more than hiring US citizens once all the extra costs are figured in. There is no savings in salary.

    But the shortage of well-trained people is real and sending American trained foreign nationals home when they'd like to stay here seems pretty wasteful. Of course I think we need to encourage more American-born students to enter STEM fields. And of course they have to be prepared to do the work when they get to college.

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    20% Time For Students


    I spent last week in Portland OR for SIGCSE. As usual it was a great conference and I was able to visit with a lot of old friends and meet some new ones. I was also able to attend some of the sessions though not as many as I would have liked. Too many good sessions at the same time and too much work to do at the booth. But I got some interesting new ideas from sessions and talks with others. One of them came from Eric Roberts (Computer Science professor at Stanford).

    Marissa Mayer of Google gave one of the keynotes at SIGCSE and one of the things she talked about was 20% time for Google employees. The idea behind 20% time is that employees are encouraged (some say required) to spend 20% of their work time working on projects that are interesting to them and apart from their official job requirements. Employees are, we are told, passionate and particularly productive while working on these projects of their own choosing. These comments sparked an interesting idea for Eric Roberts.

    During a session called "Rediscovering the Passion, Beauty, Joy, and Awe: Making Computing Fun Again"  Professor Roberts suggested that perhaps we need to find a way for students to have some version of "20% time" to work on their own projects. He didn't really elaborate on what form that 20% time might take but did suggest that perhaps as instructors we are not always the best ones to select projects that interest students.

    Others in the panel suggested that students be given more options for projects in courses. That's a good idea as well but I have to say that I like the idea of projects that are completely independent of course assignments.

    The first computer science course I took was in a fall semester. I had set up my course schedule for the spring long before I knew I was going to like this computer programming stuff. So I had to go a while without taking my next course. I still had access to the computer in the computer center (remember the days when a university would have one computer center with one computer?) and so I started a number of projects on my own. I had a blast. I may have made a bit of a pest with the lab assistants as I worked overtime to learn things on my own and outside of class. But learn I did. And best of all I had a lot of fun. More than anything else that semester working on projects of my own devising convinced me that I wanted to go into the field of computing.

    One can't really force students to do work outside of class of course. I think one can encourage them to do so though. I believe that students who find projects that interest them; that related to things that mean things to them; that help support them in learning new things and traveling in new directions can really help maintain and even build enthusiasm. Getting students to work on a 20% time project might just help with computer science retention.

    I don't know if that 20% of time that would be based on a specific course or some percentage of their average school day/week/month/semester or something else altogether. Maybe it is not 20%. But I think that a lot of students would benefit from some independent projects of their own choosing. What do you think?

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    Singularity - A Research Operating System


    Microsoft Research has released the Singularity Research Development Kit (RDK) and it is now available including source code, build tools, test suites and other materials. What is Singularity? From the project site at CodePlex where you can get the RDK:

    "Singularity is a research project focused on the construction of dependable systems through innovation in the areas of systems, languages, and tools. We are building a research operating system prototype (called Singularity), extending programming languages, and developing new techniques and tools for specifying and verifying program behavior.

    Advances in languages, compilers, and tools open the possibility of significantly improving software. For example, Singularity uses type-safe languages and an abstract instruction set to enable what we call Software Isolated Processes (SIPs). SIPs provide the strong isolation guarantees of OS processes (isolated object space, separate GCs, separate runtimes) without the overhead of hardware-enforced protection domains. In the current Singularity prototype SIPs are extremely cheap; they run in ring 0 in the kernel’s address space."

    One of the interesting things about Singularity project is that it is written in managed code - C#. This makes two such OS released recently. I wrote about COSMOS recently. This is an interesting time for people interested in learning how an operating system really works. There are more source code options then I can ever remember.

Page 4 of 8 (22 items) «23456»