Tuesday, September 15, 2020

Why Computer Science Teachers Should Read Books

Since I retired I have been reading more computer science related books. You may have read my book reviews on Humble Pi, Weapons of Math Destruction, or Computer Science in K-12. More and more I realize that I missed out on a lot of good ideas and information. Each of those books has given me ideas that I wish I had thought of a long time ago.

Currently, I am reading Nine Algorithms That Changed the Future: The Ingenious Ideas That Drive Today's Computers. I haven’t gotten very far yet but the book has covered indexing of web pages, PageRank, and public key encryption so far. I’ve started the chapter on error detection. Pattern recognition, data compression, data bases, and more are yet to come. I’m really looking forward to data compression. Teaching AP CS Principles has built up an interest that I didn’t have before.

The indexing chapter is one I had read long ago. Many years ago I experimented with indexing. I wrote some code that indexed the Bible for me. The program was more general purpose than that but the Bible seemed like a good challenge. The program used a list of words and a text file of a book as input. It output a markup language file that worked with a product called VAX Document. VAX Document read the markup language, called SDML, and formatted a document including an index. I wish I still had the code so I could adapt it for some other backend processors. Sigh.

In any case, the idea of creating and assigning indexing projects has some appeal for me. I can see this being interesting for students especially in the context of understanding search engines and more involved search queries.

Other chapters include a lot of information that would be helpful in understanding and explaining various important concepts. And maybe inspire still more programming projects!  So I do recommend this book to AP CS Principles teachers.

PS: More of my book reviews at http://blog.acthompson.net/search/label/book%20reviews

Saturday, September 12, 2020

How Are You Doing?

We’ve now finished the first week after Labor Day and at least in North America almost everyone is back to school. That may not mean physically back in a bricks and mortar school building though. My grandson is starting kindergarten online this week. I didn’t see that coming a year ago. Teachers, students, and parents are adopting to all sorts of new ways of teaching and learning. 

I confess to being happy I am retired but I am also sympathetic so those still teaching. I do worry about you all. I hope you are finding ways to take care of yourself.

My son is an elementary school principal and his summer was as busy, if not more so, than during the middle of the school year. Administrators have been having a tough time so have some sympathy for them.

Somehow many people seem to think this is all easier for computer science teachers. This is not the case of course. Yes, we may be more comfortable with computers than some teachers but the tools for teaching online are new to us as well. And helping students with computer problems is as hands on as helping students in art, or math, or English. Maybe more so at times.

I think we’ll see some tools appear and older tools will see new features develop Social media is full of teachers talking about online IDEs for example. I’m still not a fan but that’s me. I still like the idea of using virtual machines on a powerful server for teaching computer science..  No doubt a lot of people will be trying new things. If nothing else, we’re going to learn a lot this year about new tools for teaching CS.

And that brings me to a final point, have you thought about sharing what you are learning with other computer science educators? The call for proposals for CSTA 2021 is out. Even if you are learning a lot of what doesn’t work you are learning some things that do work. We’re all better off if we all share what we are learning. Please consider a proposal for the conference. If you have questions about what is involved let me know. I love presenting at CSTA conferences. It’s the best audience you could have. Seriously!

Wednesday, August 26, 2020

The End of School Computer Labs?

There has been a lot of talk in recent years about doing away with computer labs in schools. BYOD and one to one computers have been talked about and have been growing movements for a while. I wonder if the current situation will be the final tipping point.

My old school removed the computers from the computer labs. The work involved in constantly sterilizing and cleaning them was becoming too much. So students bring their own devices and now connect to virtual machines via the network. They have access to all the school’s licensed software no matter what device. This worked great when we moved to remote learning in the spring.

Besides the cleaning/sterilizing issue this means a lot of new flexibility. Of course it makes it easier if school has to close and students have to learn from home. But in school it opens more rooms for teaching. And if you have small rooms classes can even be split across rooms with teachers in one room, or even at home, teaching to several rooms with safety distancing.

I computer room can have a more flexible layout, perhaps with easily movable tables for group work, focusing on a lecture, or just plain spreading out.

Will computer labs now totally disappear? We’ll see. A lot depends on a willingness and ability to provide computers for every student. That’s easier in wealthy areas than poor ones. But it just may be the way things have to be.

Saturday, August 15, 2020

Book Review: Humble Pi

Recently, I asked my Facebook friends for recommendations for non-fiction books that would not get me depressed. Several people recommended Humble Pi: When Math Goes Wrong in the Real World so I bought a copy. I’m glad I did.

The book presents some interesting case studies in math done wrong. From people confusing units of measure (pounds and kilograms for example)  to engineers changing one variable in an equation and assuming the answer doesn’t change and many more. As you might expect there are a lot of examples where computers play a role.

There are examples of problems caused by variable type mismatches, binary overflows, and people just misinterpreting the results. You’ll get any number of examples you can use with students. A valuable book to teachers of computer science, physics, and mathematics for sure.

The book is written in an easy to read and often humorous fashion. It’s an enjoyable read even if you are “not a math person.” I bought the Kindle edition but I am wishing I hard bought a hardcopy edition to keep on my bookshelf. I’ll be back looking at this one.

Thursday, August 13, 2020

Are You Ready to Help with CSTA 2021

The call for participation in CSTA 2021 is now out. You can learn about the submission process and look at some possible topic areas on the conference information page here. There are several ways to help out with the conference (see below). You can present or you can become a reviewer. Both are very important roles.

I encourage CS teachers to consider submitting a proposal to present. I have been honored to present at the CSTA conference a number of times over the years and have found it a very rewarding experience. The audience is kind and anxious to learn. This summer, the conference being online, added a new and extra facet which I found surprisingly energizing. I am hoping, as I think most of us are, that next summer we will be meeting in person. Either way, presenting at CSTA is a great way to be part of the community and to help expand knowledge

Chances are that you tried something new this past spring. Or will be trying something new this fall semester. That means you probably have something worthwhile to share. Don’t be shy!

Reviewers are also critical to having a good conference. Reviewers read and evaluate proposals and are essential in the process of picking the best presentations at the conference. Please think about helping out in this way.


  • Apply to present: We're accepting submissions for a one-hour session, three-hour workshop, 20-minute mini-session, 45-minute Birds of a Feather discussion, or a poster session. Visit our website for more information on the process and to submit your application. All submissions are due by Nov. 8.
  • Become a reviewer: We invite you to consider reviewing submissions for CSTA 2020! If you've attended or presented at a prior CSTA conference, have a connection to K–12 computer science, and are available between Nov. 23, and Dec. 17, consider volunteering your time!

Wednesday, August 05, 2020

Learning Python Part 2: Distracted by a Turtle

I cracked a book and found out that Python supports turtle graphics. I love drawing pictures with graphics. I have since I was in university. So today I played around with the Python turtle a bit.

Mostly I played with a few of the usual turtle methods and wrapping drawing code inside loops. I had some fun but didn’t learn a lot. I’m not sure that was the most productive use of my time.

It did suggest that using graphics with Python is potentially a way to make learning Python more interesting. I have Mark Guzdial’s book on Media Computation around here somewhere. I’m going to dig it out and see if it the libraries for it will work in my environment.  I want to do more than draw lines.

Tuesday, August 04, 2020

Programming Projects for Learning or Grading

The purpose of school work is to get good grades. Well, at least that seems to be a common view on the part of students. Most teachers will tell you that the motivation for students to cheat is that they are lazy and still want to get good grades.  The recent posts by Mark Guzdial  (linked to at Changing How We Teach Computer Science) have sparked a lot of comments on his blog and on Twitter which had sparked some thoughts on my part.

I have long believed that projects are a great learning exercise for students. I haver become less enamored with them for grading. Cheating seems to show up all to often. Often it is hard to prove cheating because projects are to short, variable names are too likely to be the same logically, and there are limited ways to solve them. I have seen the most creativity and the least cheating (provable or otherwise) on larger projects where students were all doing something completely different.

A common thread in the comments I have been seeing recently is that students cheat not because they are lazy but because they don’t know how to solve the project on their own. This idea resonates strongly with me.  I see a lot of satisfaction on the faces of students who successfully complete projects. They tend to actually enjoy the process when they have success. 

Over the last several years I have increased the number of other means of assessments including multiple choice questions that include reading and understanding code. Comparing quiz results with project results has been interesting. Some students show close correlations between quiz grades and project results. Other students not so much. While I haven’t conducted a rigorous or scientific study by any means, my observations suggest to me that students are copying the projects of others because they haven’t gotten a strong enough grasp of the material. 

I’m pretty convinced that evaluative instruments that require the reading and understanding of code are better tools for understanding what students actually know than looking at projects. That is not to say that looking at projects is useless. To the contrary, students who work hard against the struggle show what they know and don’t know in their code. A project that doesn’t work correctly give a teacher a lot more information about student understanding than a project that works perfectly.

In my ideal world, I would give each student a different project for every concept I want them to demonstrate knowledge of. That is clearly not possible and certainly doesn’t scale to large classes. I’d love to have a way to watch student progress on a project. What do they try and what do they do when things either work or don’t work. I don’t know of a good tool to that right now or even if it is practical. I guess for now teachers will just have to watch students closer.And use other tools for grading and for determining what students actually know.