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

December, 2010

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    Does learning have to stop when the last bell rings?


    edutopiaWe have this tendency to think that learning at school takes place only between the opening and closing bells of the “regular school day.” Oh we know about after school programs but there is a tendency to think of them as babysitting at worst and remediation at best. Occasionally we have the good sense to think of them as opportunities to expand beyond the curriculum. That is where I think the after school or out of school programs can really shine though. That is where we can get students to learn based on interest. And we can occasionally teach and students can learn things that don’t “fit” in the regular curriculum. What I really hadn’t thought about much before today was the opportunity to create a new and in some ways better environment for learning after school. An article in Edutopia (Got Game: How to Keep Girls Interested in Computer Science ) brought this home for me today.

    One of the problems we see in computer science education is a “boy’s club” atmosphere in the computer labs. This is hard for even the most committed teacher to break during the day in a traditional setting. So Pat Yongpradit (yes, regular readers of this blog have read me write about Pat before) put together an after school program for girls to program games for Zune handheld music players. Yes, programming, games and girls all in the same sentence. Girls may not like the same games that boys do but that is not the same as not liking games. In a supportive environment with tasks and devices that are relevant to them girls do just fine thank you very much! Not a surprise to us old-timers (especially those like me who are married to a woman who made a good living writing code back in the day) but a surprise to some who see only the current boy’s club.

    You really want to read the article but just as a teaser – how well is it working? The school is hiring a second teacher to handle the demand for computer science courses.

    But maybe you are not ready for XNA and high level game development. A number of schools have used Code Rules! and Visual Basic in after school programs. Others, including in middle schools, are using Small Basic (see Small Basic starting curriculum resources on the right hand side of the page) as a fun introduction to programming. There are many game examples available. For younger students (say 7-8 and up) there is the very graphical and simple Kodu (see also for shared projects and ideas ). And there are more options as well. But the important thing is that it can be done, a comfortable lower stress, more collaborative learning environment can be created with real learning going on.

    If you want some XNA resources check out and 

    I have tags for articles I have posted on various of these tools as well. Check them out.

  • 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

    TEALS (Technology Education And Literacy in Schools)


    Today’s post is a guest post by Kevin Wang who has started a program at Microsoft to put engineers and software professionals in the classroom on a part time teachers in a team teaching model in some Seattle area high schools. I think has great potential for helping  schools around the country. (If people have specific questions from Kevin you can reach him at or or visit his site at

    Hello everyone in the K-12 CS community! My name is Kevin Wang, and I have been asked by Alfred here to do a guest blog post about the TEALS (Technology Education And Literacy in Schools) program I started in Seattle.

    I think frequent readers of this blog are well aware of the problems we face as a country in terms of technology literacy and computer science education in K-12 and its ramifications in post K-12 engineering enrollment rates as well as worldwide technology leadership and national defense.

    While this is a multifaceted problem that really needs a shift in social trends, political and educational policies, what we really need right now is qualified teachers in the classrooms. Barring another Sputnik moment in the near future to once again spur the nation into pouring enormous resources into technology and science education, I tried to figure out what we can do now to bridge the gap.

    At this juncture, this might be a good place to talk about how I got to this point. I have been tutoring and teaching ever since I was in high school. It is a passion of mine, and although I ended up majoring in Electrical Engineering and Computer Science in college, I saw that there was a need for CS teachers in the K-12 space. So I put my money where my mouth was although it was an incredibly difficult decision. My in depth discussion about pay differential between industry and schools is here: Nonetheless, I ended up teaching at a Bay Area school before going on to graduate school in education and later on working at Microsoft.

    While at Microsoft, I realized that I was able to teach CS part time at a local school 1st period and still make it to work pretty early compared to some of the developers. This got me thinking, if Microsoft has taught me anything, it is scale. I needed to scale. Fortuitously, a high school 15 minutes away from Microsoft ended up getting in touch with me about teaching an AP CS and web design class. I knew teaching three classes part time by my self was out of the question. It was then I knew I needed to make scaling myself out a reality.

    All I really needed to do was to start a program that lets technology company employees teach at local schools in the mornings and match them up with schools that needed technology literacy or CS teachers. It is an oversimplification of the program, but TEALS brings technology companies, technology company employees, school districts, schools, school teachers, students, curriculum and mentoring all together. Of course the devil is in the details and I won’t go into all of it here. The end result is that schools without technology literacy and CS teachers can start a program immediately, and technology company employees who are interested in teaching can do so without jumping through a lot of hoops or have to give up their day jobs.

    The TEALS program works with the schools to see where their needs are in terms of classes and work with them to get a TEALS friendly schedule out for the school year (CS classes in the morning). I then work with the schools to figure out what the actual course description and contents should be. Our TEALS teachers and I then come up with a curriculum for those classes. I do not provide a full curriculum for them (it’d be too tempting to show up and read it to the class) but rather the skeleton of one that the teachers have to flesh out over the course of a few months before school starts. During that time, TEALS also prepares the teachers for the actual classroom management and teaching part of the class. Although as we have found out, some of it has to happen during the school session there is no real substitute for being in a real classroom.

    In the spring semester, TEALS will expand to 11 teachers, 6 courses, and 4 high schools across 2 school districts in the Puget Sound Area reaching some 250 students. We are looking to double those numbers next school year as well as expanding the model outside of the Puget Sound Area and Microsoft.

Page 5 of 7 (19 items) «34567