Wednesday, October 14, 2020

What If We Asked Students To Write Textbooks?

A professor friend on Facebook posted that a student emailed him to say that they textbook the were using was “crap.” I suggested in jest that he asked the student to write a better one. That’s pretty tough since how do you write a textbook about something you are learning as you go? (Can be done. Is painful. Don’t ask how I know this.)

The exchange got me thinking though. Supposed we asked students to write a chapter for a mock textbook? Or perhaps asked them to write step by step instructions for completing an exercise assignment. After it was covered in class but perhaps in lieu of a test.

I think it would be interesting to see how students explain concepts. Have they write to explain things to people their own age. How would they explain things? What words would they use? What examples would they give?

They say that to really understand something you have to be able to explain it to others. 

Somehow I don’t think most students would like this exercise though. Of course we already ask students to do things they don’t like – taking tests being one of them.  I do think that it would give us insights into what they do understand and how they understand it. Or misunderstand it as the case maybe.

Anyone want to try it?

Monday, October 12, 2020

Thinking About the Algorithms in Our Lives

My wife and I use these fitness trackers, ours are made by Garmin, to keep track of our activity during the day. Each day the devices give us a goal for how many steps we should take that day.  The goal goes up or down depending on how many steps we did on the previous day. I think. Maybe.

Being the computer guy that I am I keep thinking about how the algorithm actually works. Is it a simple algorithm based on some sort of average or does it have some amount of smarts? Does it take several days activity into account or just the previous days? Like so many things in our lives the algorithm is completely opaque to users.

Google Page Rank, the algorithms that run on the computers controlling our cars, and the software John Deere uses to control the equipment they make. (see article linked below for way this opacity is a problem for some) are all secret. Why?

Well, various companies have various reasons for keeping their algorithms secret. Competitive advantage is the reason for some. For many it is to keep people from “gaming the system.” Google, and other search engines, don’t want people to find ways to get unfairly high placement in searches. I suspect some of that is involved in my Garmin’s secrecy. For others, it is about keeping control of the how the systems them make are run – often for the sake of safety. That’s why many companies don’t want their software “messed with.”

How good or bad this is for the consumer is quite up for debate. There are solid arguments on both side. Arguably, the right thing depends on the situation in many (perhaps most) cases. These are issues we need to think about going forward. People who write software and create algorithms have a responsibility to make the right decisions about secrecy or openness. The decisions have to be about more than just money as well.

Do you discuss these issues with students? I think we need to do so.

Farmers Fight John Deere Over Who Gets to Fix an $800,000 Tractor

Sunday, October 04, 2020

Artificial Intelligence, Humor, and Appreciation of Beauty

Last night I started re-reading Heinlein’s The Moon Is A Harsh Mistress.  It’s an old book, written in the mid 1960s, so there are some old ideas about computers and computing in it for sure. There is some hand waving about how AI is done and how the computer, Mike or Mycroft Holmes, becomes self aware. It is fiction after all. The computer is trying to understand humor and a human friend is trying to help. One way he is helping is to get lists of jokes and report back on which jokes are funny, which are funny once, and which ones are always funny. That sounds a bit like machine learning we see today I think.

In any case, even is the computer does understand humor at some level and is able to create jokes that people find funny does that mean it has a real sense of humor? Will it be able to laugh at jokes that are not in its system? I wonder.

This makes me wonder about other things. We know that AI has been able to write music that people enjoy and create art that looks like it was done by master artists. Is creating art or music the same as enjoying art and music? Maybe not. Now human artists “hear” music in their heads before they write it down or play it. Beethoven write music while he was deaf and so could not hear it being played.

I’ve been to a number of wine tastings. I don’t like wine. No matter how many times I taste it I just don’t enjoy the taste. Listening to wine experts talk about wine and tasting it myself I think (could be wrong) I could learn to identify the wines that wine lovers like. I don’t see me enjoying the process very much though. Understanding is not the same as enjoying. Is it the same for computers and AI? I think so.Recognizing beauty or humor or music is not the same as enjoying it.

The difference between humans and AI is that humans enjoy their creations. And they enjoy the creations of others. If we think about creating beauty as enough to  being human-like  I think we have a narrow view of humans. What do you think?

Thursday, October 01, 2020

MicroBlocks For IoT and other Physical Computing

Well, there is a new tool in town for programming micro devices like the Micro:bit and the AdaFruit Circuit Playground Express and many more! It's called MicroBlocks and was created by a rock star team with experience with creation of such tools as Scratch and Snap!. It’s pretty exciting for a number of reasons. One of them is the wide variety of devices it works with. Another is the Natural Languages it supports.

Live Coding is another interesting feature.

MicroBlocks is a live environment. Click on a block and it runs immediately, right on the board. Try out commands. See and graph sensor values in real time. No more waiting for code to compile and download.

And Multi Tasking.

Want to display an animation while controlling a motor? No problem! MicroBlocks lets you write separate scripts for each task and run them at the same time. Your code is simpler to write and easier to understand

I played with it a bit and it looks pretty intuitive especially for those with previous block programming experience. I made the mistake of trying it without having a device to use with it handy. I have several at home and so I’ll be trying them next week. But I wanted to get the word out so that if people want to try it over the weekend (yeah, I know you don’t have as much free time as you want) or have some students try it out you could.

Sometime next week I want to do a side by side comparison with MakeCode which supports several of the same devices. Some obvious differences are that MicroBlocks supports running the exact same app on different types of devices and that MakeCode has emulators. Since most people only use one type at a time and have physical devices the impact of those differences will be different in different environments.

We are living in exciting times!

Tuesday, September 22, 2020

What I miss and don’t miss about teaching

Fall has come and while students are back in school I am not. I’ve been reflecting a bit about that. I don’t miss getting up at 6 AM and driving for close to an hour to get to school. I don’t miss running my life by a bell schedule. I don’t miss grading, report cards, and other administrivia. I don’t miss classroom management issues.

On the other hand, I do miss interacting with students. I especially miss the interactions that take place outside of class. I miss the look, and sound, of students when they get a concept or when their program works – finally. I miss debugging student problems with programs or their project. Students are very good at finding ways to mess up a Visual Studio project. That’s the one big downside to using a professional tool. But I had fun putting things back together.

There are all sort of debugging issues that come up in the code. There is syntax issues (semi colon hide and seek anyone?) and logic problems. Both are fun little puzzles to solve. And I am sure there are still many that students have not discovered.

But the big miss is the students. I still think I retired at the right time for me.

I hope your school year is going well. I am following all sort of teacher/school things on social media and I know its not easy. Stay safe. And if you have a student program you can’t debug let me know.

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

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.

Sunday, August 02, 2020

Learning Python: Part 1

Python has been on my radar for years but I haven’t really had the motivation to learn it myself. It’s time though for several reasons. Reason number one is that I need a learning goal to keep stretching my mind and knowledge. I don’t have a bunch of students finding new puzzles to solve so I have to make my own mistakes.

First step was to pick a development tool. I have played with a bunch. IDLE, PyCharm, Processing, and some I forget. I didn’t like any of them. So I am using Visual Studio. I expect many to tell me that was/is a horrible choice but its the devil I know so there is that. Many of the tools feel like steps backwards to me. I’ve gotten spoiled by the Intellisence in Visual Studio among other features. IDLE felt like what I used to learn BASIC-Plus 40+ years ago. Anyway, I want to spend my time learning a language not an IDE.

OF course there are two parts to learning a new programming language. Part one is the basic syntax. Part two is the idiom of the language. The first part is easy. The second not so much.

I’ve started with easy stuff. Declaration of variables, simple math, declaration of functions, and control flow. IF statements and while loops were pretty straight forward. For loops are different and idiom rears its ugly head here first for me.

For loops in Python seem to be what I think of a ForEach loops in other languages. Very powerful and useful. On the other hand, how do I do the equivalent of:

for (i=0; i <= 100; i+=5)
for i =0 to 100 step 5

Or do I need to use a While loop to do this? Go ahead, show off in the comments and help me out.

String manipulation, one of my favorite things to code, is probably next for me.I think that will be ok.  Lists and dictionary come after that. I think I will have to read up on them as they look to be thought of differently than arrays in the languages I am used to using. They also look like fun and powerful to use. So there is that.

Classes after that. Hopefully that moves quickly.

Once I get some basics down I’ll start looking into various libraries and what not. Perhaps go back to try some graphics in Processing. Is there an equivalent to Windows Forms like I use with C# and Visual Basic? Or do I have to go backwards again to do that?

At least I’m having fun. Now to go crack a book.

Thursday, July 30, 2020

Changing How We Teach Computer Science

I haven't been blogging much lately. I'm adjusting to being retired for the most part but I have been reading and thinking a lot about teaching computer science along the way. Mark Guzdial has been thinking even harder and has posted a four part set of blog posts about the subject.

I find that many of his ideas as close to how I have done things in the past. Of course at the high school level we see a lot fewer students with previous experience in CS than many university faculty do. SO we follow much of his suggestions in proposal #1 out of necessary.

The whole series is worth reading. Don’t ignore the comments either.

Saturday, July 18, 2020

Book Review: Weapons of Math Destruction

Weapons of Math Destruction has been out for a couple of years now and it is one of those books that a lot of people reference. I finally got around to reading my copy this week.  For those of you who are not familiar with it, the book talks about algorithms involving huge amounts of data and how they are used and misused.These WMD are involved in increasing parts of our lives from teacher evaluations, to credit scores, to policing, to getting hired for a job. Companies make assumptions that the algorithms are fair, impartial, and that they get the results they are advertised to provide. Often all of those assumptions are wrong.

In some ways I think the point could have been made with one or two chapters but providing a multitude of examples is definitely informative and convincing. The book is more than a little scary but I think that is the point. We should be concerned.

Those of us involved in computing, perhaps especially those of us teaching computing, need an eye opening book like this. It can help us do better and perhaps avoid some of the unintended consequences that this book so clearly outlines.

I’d love to assign this book as required reading to students. I could probably get away with that at the university level but high school students are both reading adverse and already loaded with a lot of reading. I think what I would do at the high school level would be to place a couple of copies on course reserve and assign specific chapters to individual students to read. I’d have them submit both an oral and a written report of their chapter. Some group discussions would also be a plus. This is a natural for an AP CS Principles course but I think it would fit in elsewhere as well.

We need people in computing who can look at technology and think about unintended consequences and, perhaps more importantly, ask what are the impacts on society of what we are thinking about doing? Is it all just about money and the bottom line or are we actually making people’s lives better?

Wednesday, July 15, 2020

Thoughts on Virtual Conferences - CSTA 2020

The first online CSTA Conference is now about 24 hours behind me. I was fortunate to experience it both as an attendee and a presenter. After mulling it over a bit I have to say it was a much better experience than I expected it would be.

Attending was very low friction. No travel half a day each way (with attendant airfare) no hotel to book and pay for and that is just to start. Attending sessions was easy. No hunting for rooms for example. I have put in a lot of steps in previous conferences going to the wrong room or finding a room at out of the way locations. None of that here. No trouble entering and finding a seat. Or leaving if I wanted to switch sessions. Really very smooth.

Attending sessions was great this way. I particularly liked the chat window as it allowed others to share resources and for more people to ask questions. I hope there is a way to capture the chat session information. I would like to have the comments from my presentation at least.

Presentations were of the usual high caliber for a CSTA conference. Sure some were better than others but over all much higher than some other conferences I will not name. Presenters seemed comfortable presenting online. Some of this may because a lot of us have been doing so for school but the preparation for presenters was really very well done. As a presenter I felt very prepared for the platform.

As a presenter things went pretty well. I had wanted to have a second monitor running but due to some technical issues that were all my fault I didn’t get that working. Let that be a lesson to me. Not being able to see the chat window while I was presenting was a disadvantage but the wonderful CSTA proctor was able to see it and fed me questions as appropriate. Having a person who can do it is very important in an online presentation.

While presenting I obviously could not see the reactions so setting an audience based pace was difficult at best. Attendee questions did help there. I also missed hearing people laugh at my jokes (be they intentional or otherwise). There were some comments in the chat that said people did laugh so that’s good. Presenting online is not as much fun for me as presenting in person. One the other hand, I don’t think any of us presenters would have had the size audience we had online if we’d had the conference in person.

The hopin platform worked very well – flawlessly for me. I recommend it. We had a reception area for finding out what was happening and when. A “main stage” for keynotes, breakout rooms for the concurrent sessions, a networking area, and a virtual exhibit hall.

The networking area was very interesting. It placed you in a session with a random attendee for 5 minutes. Just enough time to meet someone and be very low stress. You didn’t have to find an excuse to “walk away.” I took part a few times but as an introvert I have my limits.

The exhibit hall didn’t quite work for me. I like to look at booths and the physical objects in them. It was great if you like to listen to exhibitor presentations and I know that many people do. So that was a mixed story for me. I would love to know what exhibitors thought of the experience.

I was going to write about missing the “hallway track” in this post but I think that deserves a post of its own. So that will probably show up tomorrow.

Tuesday, July 14, 2020

CSTA Online Conference 2020–Day Two

The first thing I did this morning was to prepare for my presentation. I may have made some last minute changes to my presentation deck.

The first thing I attended was a Birds of a Feather session called White Teachers as Anti-Racist Allies. I listened closely. Living in New Hampshire were we don’t have a lot of people of color it is easy to fall into the idea that race is not an issue. But of course I have been teaching in a school with more than the average number of people of color for the area so I know better. This BoF gave me some things to think about.

I couldn’t focus on anything after the BoF. In all honesty I couldn’t get my mind off of getting myself set for you presentation. This tends to happen to be at in-person conferences as well. I probably missed something valuable but hopefully I can watch recordings later.

If you are interested, my presentation slides can be downloaded from Techniques for Teaching Programming. Someone else will have to review that session. Please be kind.

After lunch was a keynote by Dr. Ruha Benjamin called Keynote: 2020 Vision: Re-imagining the Default Settings of Technology and Society She focused on the intersection of technology and bias. Really thought provoking. She shared a really interesting video called "Racial Sensitivity" from Better Off Ted Recommended. How does data and algorithm incorporate bias?

After the keynote I started with Our Code From Miles Away: CS via Distance Learning, which according to to the slides was going to be about Pear Deck and FlipGrid. The main presenter had some issues with time zone coordination which is more a problem with online conferences than in-person ones. Anyway, I left early and moved to Machine Learning in the High School Classroom. It was well done but jumping in 20 minutes late means I missed some important context. I look forward to viewing the recording from the beginning And reading through the website I linked in the session title.. Not much else I can say about this one I am afraid.

Next up was Git and GitHub: How to Use It, How to Teach It, which was of course about Git and GitHub. This was a very fast paced session by a pair of experts. I learned a lot from this one.

I dropped into Nifty Assignments for my last session of the day.

The archive of CSTA Nifty Assignments is here. Check them out!

So the virtual conference is over. For me there were a lot of great sessions. If you were there, what sessions did you like? Let me know which ones I should look for when the recordings are ready.

Monday, July 13, 2020

CSTA 2020 Conference Online–Day One

Day one of the online CSTA 2020 conference has been today. I’m blogging this as the day goes on and posting it at the end of the day. We started with welcome remarks and some tutorial about using the Hopin conference platform. As a presenter, I’d had some time to try this out previously but I think this was probably very valuable for first time users. I hope not many missed it.

After welcomed remarks we had some networking time. This is actually fun as you are randomly placed in a window with someone for 5 minutes of casual chatting. I found this a nice way to warm up to the day. And to chat with CS teachers from other parts of the country.

During the first break out I attended a session called - Integrating Cybersecurity into the AP CSP Course.I really think we need to teach more of cybersecurity so I jumped into this one. The people have Whatcon Communiyt College have some very interesting and useful looking resources for teaching Cybersecurity. They have 13 units at their website which I link to below along with their sites description.

C5 Cybersecurity Concept Lessons

NCYTE Center supports the work of a related grant project also based at Whatcom Community College, Catalyzing Computing and Cybersecurity in Community Colleges (C5). One of the goals of the C5 project is to develop and disseminate instructional materials to enhance computer science and cybersecurity courses.

The following Cybersecurity Concept Lessons (CCL) illustrate how Cybersecurity can be integrated into the AP CSP course. Each lesson contains activities, a presentation and an overview document that can be downloaded and used in the classroom.

The first keynote started after a sort of ad from Apple. A lot of side chatter was about the usability of Swift without having a Mac to compile on. I may have to look into that. I will start here I guess

The keynote was by Linda Liukas who writes children’s books about computing. I really need to look into her “Hello Ruby” books. Lots of us use the exercise of having students write instructions for making a peanut butter sandwich or a paper airplane (my favorite) but Linda suggested brushing ones teeth. That sounds fun. The talk had a lot of computer free examples and exercises. Most of these would work for a wide range of ages.

The keynote was high energy and inspiring for me. Videos will be available later for CSTA+ members I believe. I plan to watch it again.

Lunch break and time to visit the booths and poster sessions. I visited a couple of booths. It’s interesting as the booths I visited had 50-60 people listening to the person “working the booth.” I spend some time in the Microsoft booth while they were talking about the Hacking STEM program and projects. I keep telling myself I need to get into this stuff but year after year I find myself pulled into other things. Maybe I’ll get to it now that I am retired. Then maybe I can do quest visits to my old school. We’ll see. I really do want to get involved in hands one matter hacking.

After lunch, Mini-Session 3: Tools to Teach 9th-12th Grade There are over 150 people attending this session! Can you picture having rooms that large for as many sessions (12 by my count)  as are going on now?

This session started with Truffle Hunt: Teaching an AI Agent to Play a Minesweeper-Based Game (that link is to the PowerPoint which itself has resource/reference links) I like the idea of teaching rules based AI. Jeffrey L. Popyack from Drexel University presented that one.

Next up was Teaching AI to High Schoolers Inclusively with  Sarah Judd, AI4ALL. Her slides are at Sarah talked about an Open Learning curriculum for teaching Artificial Intelligence. You can Access the curriculum at

The last mini session was by Leon LaSpina on MATLAB.  His slides on MATLAB are here. Leon is a great guy and I can see some reasons for people to teach MATLAB. But I left early and just dropped in on a couple of other sessions for a few minutes at a time. It is less disruptive to enter and leave sessions online.

Next up, Formative Assessment and Feedback for CS Learning with over 270 attendees! I guess a lot of us are interested in doing better assessment and giving feedback. Slides are available at  Formative Assessment This is another session I want to watch a second time.

I attended Incorporating Culturally Authentic Practices in a Problem Based Computer Science Classroom. I’ve always been a proponent of project based learning but I haven’t thought a whole lot about cultural reliance before. It seemed more about PBL in general than specifically how to make them culturally relevant. It may be just me though.

So I jumped into Teaching Girls to Code and Change the World which was about Girls Who Code. Girls Who Code is an outstanding program.  I love the concepts of their program. It’s so much more than coding as it includes community building, long term connections and networking, and showing of role models.

The afternoon keynote was by Hadi Partovi of and titled K-12 CS: How Far We've Come and Where We're Headed Hadi started with a review of where we were 7 years ago and how far we have come. Hadi listed a bunch of individuals and organizations who have helped make the progress we have seen in that time. It was awesome to hear him call out so many. It’s been a global village.

Hadi ta;led about how important it is to teach students ethical thinking and taking into account the impact of computing and technology. This is so important. I’ve heard Hadi speak several times and this was far and away his best talk.

The last session I attended was AP CSP 2020: Updated Course and Exam because there is a chance I may teach AP CS P online in the fall. Maybe. In any case, this was VERY useful if you are teaching AP CS Principles. I have to say that I like the changes. They have really made the create task more clear and added some specific requirements that I think make the task more rigorous. . I’m happy about dropping the explore task as a digital portfolio part of the exam. The link on the session name at the start of the paragraph is to their presentation deck. I saved a copy for potential mixing and definitely for my own review.

That’s the session wrap up from me. I’ll have more thoughts specifically about how the online conference experience was for me in a day or so. And of course I will be blogging about tomorrow’s sessions tomorrow.

Wednesday, July 01, 2020

Book Review: Computer Science in K-12

Full disclosure: I haven’t read all of “Computer Science for K-12” edited and compiled by Shuchi Grover yet but a couple of chapters was enough to convince me I should recommend it to other computer science teachers. The books has chapters written by a veritable who’s who of computer science educators. (See the table of contents listed below) I’ve heard many of them speak, read much of their published works, and met more than a few of them. I knew from the author list that it would be worth having.

I have been jumping around a bit but for me the chapter on Naïve Conceptions of Novice Programmers alone was worth the price of the book.  I have no doubt that I am going to learn a bunch reading the rest of it. The chapter or chapters you read that makes the book worth the price may vary but I suspect you’ll find several such. If you are looking to improve HOW you teach CS you should get this book.

It is available with black and white illustrations and diagrams and color versions. I bought the black and white version but wish I had spent a few extra dollars for the color. It's available from Amazon and Barnes & Noble

The table of contents is below from the Amazon page.

  1. Foreword (Inventing Computing Education in Schools) by Mark Guzdial
  2. Algorithms (Shuchi Grover)
  3. Before You Program, Plan! (Phil Bagge, Shuchi Grover)
  4. Creative Coding (Miles Berry)
  5. Data Structures (Baker Franke, Richard Kick)
  6. Events (Jennifer Rosato, David Wolber)
  7. Feedback Through Formative Check-Ins (Shuchi Grover, Vicky Sedgwick, Kelly Powers)
  8. Guided Exploration Through Unplugged Activities (Paul Curzon, Shuchi Grover)
  9. Hard Fun With Hands-on Constructionist Project-Based Learning (Deborah Fields, Yasmin Kafai)
  10. Integrating Programming Into Other Subjects (Shuchi Grover, Aman Yadav)
  11. JavaScript, Python, Scratch, or Something Else? Navigating the Bustling World of Introductory Programming Languages (David Weintrop, Shuchi Grover)
  12. Knowledge, Skills, Attitudes, and Beliefs | Learning Goals for IntroductoryProgramming (Rebecca Vivian, Shuchi Grover, Katrina Falkner)
  13. Learner-Centered and Culturally Responsive Pedagogy (Tia C. Madkins, Jakita O. Thomas,Jessica Solyom, Joanna Goode, Frieda McAlear)
  14. Modularity With Methods and Functions (Mike Zamansky, Jens Monig, Jonalf Dyrland-Weaver)
  15. Naïve Conceptions of Novice Programmers (Juha Sorva)
  16. Operators and Expressions (Matthias Hauswirth, Shuchi Grover)
  17. Pair Collaboration and Pair Programming (Shannon Campe, Jill Denner)
  18. Questioning and Inquiry (Shuchi Grover, Steven Floyd)
  19. Repetition and Recursion (Dan Garcia, Joshua Paley)
  20. Selecting Pathways With Conditionals (Shuchi Grover)
  21. Testing and Debugging (Kathryn Rich, Carla Strickland)
  22. Universal Design for Learning: Reaching All Students (Maya Israel, Todd Lash)
  23. Variables (Shuchi Grover)
  24. Worked Examples and Other Scaffolding Strategies (Jane Waite, Shuchi Grover)
  25. X-ing boundaries With Physical Computing (Sue Sentance, Katharine Childs)
  26. Yay, My Program Works! Beyond Working Code ... Good Habits of Programming (Shuchi Grover)
  27. Zestful Learning (Bryan Twarek)

Friday, June 19, 2020

How Do We Know Who Is Struggling In Learning CS

One of the interesting points Amy Ko makes in her presentation to Microsoft (CS education in higher education) is that “Most faculty have little insight into who is struggling most into their class, because the ones that struggle are most silent.” She goes on to suggest that took could help make struggle visible at scale.

In the high school classroom most teaches try to be aware of what students are doing and notice who is struggling but it’s hard. Students are very good at hiding the fact that they are struggling. Many just don’t want to admit, especially in front of their peers, that they are having trouble in a class. Teaching online makes noticing struggle even harder!

So what sort of tools would be helpful? That’s what I have been thinking about for a bit.

What are the indications of struggle? Idleness in the IDE? Maybe but sometimes students are very active but not making progress. They add stuff, try it, delete it, and try something else. The “lest throw stuff against the wall and see what sticks method.” So to much activity or to little activity? These are both things an educational IDE could track.

What about syntax errors? This is a tough one because sometimes a single character off will generate a great many errors. I have managed to see error lists move from over 100 to 2 or three after changing one line of code. So maybe look at specific errors? We probably need some research on this.

Number of builds? Some people write a lot of code before doing a build while others run a build after every little change. Seems like an unreliable metric.

Total time spent in the IDE? Maybe although how does the automated system know if the amount of time is due to struggle or to an advanced student adding far more than what is required?

As a teacher, one thing I would like to know is that errors are the most common in a class. That would help me adjust how I teach certain things.

If only students would talk to us!

All in all I love the idea of tools to help teachers see who is struggling and what they are struggling with. I just don’t feel like I have a good handle on what metrics would be really helpful.  Commercial IDEs are never going to care about these things though. Might make a good PhD project for some CS education researcher though.

Dr. Ko suggests that one way industry could help is by “should be supporting the hiring of CS education faculty and the creation of CS education classes to prepare effective CS teachers for K-12 and higher education classrooms.” We still have a lot more questions than answers in terms of teaching computer science.

Wednesday, June 17, 2020

Thoughts on an IDE for Teaching CS

Amy Ko posted a slide deck about CS education in higher education from a presentation she made to a group at Microsoft. There is a ton of stuff in there. I need to read it a couple more times actually. I’ll probably blog some more based on other things she brings up. Issues of equity for example. That one I need to think over a bit more as I process the reality of the world today. But for this post I want to focus on some of the ideas she shared for teaching beginners.

Under the heading “Classes move too fast” she writes “Many introductory programming courses now include a 1) professional-grade programming language, 2) a professional-grade IDE, 3) a professional-grade version control system, and 4) a professional-grade test framework.”

This is too much for many students. In my end of year survey most of my students felt that Visual Studio (a professional-grade IDE using a professional-grade programming language) was fine for them. Not to hard. And a lot of teachers are using GitHub – a professional grade version control system. That is still a lot to learn just to get going though. My students may think they are doing just fine but honestly I spend a lot of time fixing projects because it is far to easy to mess them up. I’m finally beginning to face that truth.

Later in the presentation Dr. Ko talks about making tools that make collaboration and working together easier. How do students work together? How do they do it when they are separated by time and space? That is something we have to think about even more these days.

What is the answer? Well, I’d like to see an IDE and language that creates projects that are harder to screw up for one thing. Don’t ever let beginners use Save As in a Visual Studio project. Doing so is almost a guarantee that a beginner will mess up their project in serious ways. Save As as an option for experts? Yep. We don’t want that for beginners. That’s just the start. Students are always closing windows they think they don’t need but later realize that they need them after all.

And collaboration? GitHub works for some. As I said I know a number of teachers use it with their students. I have had students who used it on their own as well. Awfully smart girls those two. But its got some rough edges. It’s really a powerful professional tool that offers more than most students or teachers really need.  And there are so many options and steps! We need something more simple! It needs to be tied in to the IDE fairly transparently as well.

Pair programming remotely? I’ve tried Visual Studio Live Share a bit.and it has some real potential. Not many seem to know about it yet. It does require  that people have a reliable want to share links for sessions. I’m not sure how it would work if a teacher wanted to look at a lot of student sessions are once. And we are still dealing with Visual Studio or VS Code and their projects.

This last semester I used Microsoft Server Manager to work with students online/remotely. Worked great as long as we were on the same virtual machine. It’s not something I want to give students access to though. I would like that functionality in a different tool. Especially if making the connection was as easy as this one was. It was easier than Live Share. So the tool I would want would probably involve some sort of “server” that was attached to a class that let students find their partners and connect with permission from the other student. Wouldn’t that be cool?

So what I want is an IDE that doesn’t let students mess up their projects easily, does easy version control with minimal set up or steps to make happen, and easy sharing of coding sessions. All built in with an easy set up.

A test framework? That’s a topic for another post.

Monday, June 08, 2020

Setting Up To Teach From Home

This past spring semester was my first time teaching remotely but not my first time working remotely. I worked from home while working in industry for jsut over 9 years. The latter probably helped me set up to teach remotely. Still, I learned a few things about being a remote teacher. I thought I should write it up and see what other ideas people might have to share.

First, you need to work somewhere outside the main events of the household. An office is ideal of course but not many of us have that option.  Still you want to find a place that is not busy when others are home, where they are a minimum of distractions, and where you don’t have to set up and break down your work equipment every day.

If you are presenting with video you want to be aware of your background. To much light behind or from the side can be a problem for the video. You want to know what is behind you. Will it distract others? Will it show things that are to personal to share with the whole world? I know teachers who have hung sheets behind them. That is probably not necessary but you want to be deliberate about what other see in the video.

Speaking of video, you want a good camera. I’ve seen some debate over webcam or built-in camera and I don’t have a firm opinion. If you have a good camera in your laptop or desktop you will probably be fine. In either case, make sure you are centered in the image it takes.

I find that a headset works better than the microphone and speaker built into at computer. A headset keeps out extraneous noise from both your ears and the conversation. It helps avoid distracting noises in the house as well. I know that a few teachers I know have purchased “gamer headsets” and found they work very well. They’re not that expensive either.

Speaking of gamer equipment, a comfortable chair is a must as you will be in it longer than you would be if teaching in person. Several teachers I know have been buying chairs made for computer gamers. What ever chair you get should be comfortable and sturdy.

Screens? You really want, I almost say need, two or more windows. Professional developers argue over which is better – two (or three) monitors or one very large monitor with multiple windows. I suspect that for most teachers a second monitor is less expensive than a very large monitor. Cost aside, personal preference rules in the hardware decision. I used two laptops side by side this spring but I would use one with a second screen if I were doing it again. I might have a second laptop as well since I have several anyway but that would be more of a backup than a principle workstation. Being able to copy things from one window to another is invaluable.

I used to keep one window showing that online meeting with student faces and the second with what ever I was demonstrating or presenting. I also liked to have my student information system, for attendance, in one window and the Zoom or Meet window in another to make taking attendance easier. That was much easier than switching windows on one screen. I did the same thing when grading. Work I was grading in one window and gradebook software in the other window. Since work was all being submitted online this was the easiest way to work for me. Your mileage may vary of course.

I can’t forget the network. Wi-fi works when it works. Wired connections are almost always faster and more reliable (I sometimes lose WIFI when the microwave runs),  It’s not always easy to set up but if you can use a wired connection I do recommend that you do..

Will teachers be teaching remotely in the fall? I don’t know that anyone knows for sure. It doesn’t hurt to prepare for multiple eventualities though.

Monday, May 25, 2020

ACM Digital Library is Open for Free

Like most K-12 teachers, a membership in a professional society like ACM or IEEE is not funded by my school. So I pay out of pocket for an ACM membership and have for years. The extra money for access to the ACM Digital Library is a bridge to far. Normally, during a conference members can download papers from that conference and I take advantage of that. Right now, the ACM Digital Library is open to everyone for free. I am downloading papers like crazy. OK, maybe not like crazy, but I have been downloading a lot of papers that I find interesting.

I start by browsing conference proceedings and moving from there. Today I have been looking for papers at the Koli Calling conference.  I’m not sure where to go next but with just over a month to go of free access I hope to download papers referenced by the ones I have already.

Teachers of computer science now is the time to download your summer reading!

From the ACM Digital Library website:

We believe that ACM can help support research, discovery and learning during this time of crisis by opening the ACM Digital Library to all. For the next three months, there will be no fees assessed for accessing or downloading work published by ACM. We hope this will help researchers, practitioners and students maintain access to our publications as well as increasing visibility and awareness of ACM’s journals, proceedings and magazines. Please be sure to inform your colleagues that the ACM DL is now open, and will continue that way through June 30, 2020

Sunday, May 24, 2020

What About the Students Who Thrive Learning Online

In my end of course evaluations I asked my students if they learned better online or in the classroom. Not surprisingly, most of them said they learned better in the classroom. Maybe the experience will help motivate them to come to class. But I have been thinking about the students who said they learned better online. My son who is an elementary school principal has been seeing similar things. Students who struggle in the physical classroom are thriving online. What can we learn from this to help us reach these students better?.

The last few months have been anything but a careful study so it is hard if not impossible to come to firm conclusions. Antidotally, it looks like some students are more comfortable asking questions privately. Hardly a surprise but we don’t generally make allowances for that. Maye we should.

Other students are doing well because they are more In Control of their schedule. I don’t just mean the time of day, though I suspect that is a factor for some. I mean they can work on a subject in smaller or larger chunks of time. If they are really progressing and feeling food they can keep going. I have had students stay after class in the physical and well as the online classroom but teaching online the last class of the day has resulted in a lot more students staying late and getting extra help

Often we know that there are times when frustration means one should walk away from a problem and come back with fresh eyes later. The asynchronous learning that many schools have been using really opens the door for more of that. Its not like homework which in theory would allow for that because the whole day has been unstructured or at least less structured.

Home school parents have been talking about these things for years.If educators can look beyond our own biases perhaps we can learn from them.

Over the summer, hopefully, we can catch our breath and take a close look at what we learned, what worked, and what didn’t work. We’ll know more about how to teach online for sure. It wouldn’t hurt to look at this experience for things that may help the students who don’t learn as well in the physical classroom.

Friday, May 22, 2020

Am I Retired Now?

My last class of the school year just ended. My grades and report card comments are in the system. I am not going back to school in the fall. Am I retired now? I guess so. It feels weird as if there is no real closure. It doesn’t feel real. I actually updated a PowerPoint today that I have no immediate plans to use. Just seemed like the right thing to do.

People are asking me what’s next and to be honest that is unclear. I will be presenting at CSTA 2020 this summer. That will be online which is also weird. I will really miss the the hallway thread. I am on the conference committee for CSTA 2021 so CSTA and I are clearly not done with each other.  I hope to actually make more CSTA New Hampshire meetings. If I can swing it I hope to make some other conferences as well. There is one in Canada I have always wanted to attend and SIGCSE may be doable as well. I will not have to miss school for it at least.

Anyone want to pay my way somewhere, anywhere once the world is open again and have me  speak?

A lot of people have suggested teaching online and I  am considering it. I have mixed feelings about it and it would have to be the right situation.

Once the lockdown is over I plan to spend more time with my grandson. I am really looking forward to that.

I have a book idea or two that I want to work on. So that may keep me busy a bit.

As for this blog, I intend to keep going with it. I keep running into ideas to share and doing so seems like a good thing to do.

Tuesday, May 19, 2020

Teaching is About Relationships

Today I was online with my students for about 90 minutes of a planned 55 minute class. One of my students joined the Google Meet session early and we chatted for a while. We talked mostly about how things were different learning online. I also had students stay after the scheduled end of class for extra help and we also talked about online learning for a while.

For me, as for I suspect most teachers, the best part of the job is building relationships with students. That is harder when teaching online. There are few chats between classes, before and after school, or during lunch room supervision. Many teachers I have heard from talk about how they are glad they got to establish relationships with the students they teach before we went to emergency remote teaching.

One of my students this morning said that she was worried about incoming freshmen if school starts online. They will not have the relationships that help adjust to a new school. They will also not have the technology experience that current students had even before we moved online.

Students tell me these out of class chats are important to them. From my observations, students who establish a good relationship with even one teacher are happier and more successful in school. I wonder how we can develop those relationships if school stays online.

My students tell me that they would rather be in the physical building. They miss their friends but they also recognize that they learn better in a physical classroom than online. Sure it is nice to be able to eat in class, have a restroom close at hand, and be able to do things at home without the travel to and from school but that’s not enough.

One student told me today that she misses the atmosphere of school. There is a feeling in the building that helps her feel comfortable and ready to learn. That is the sort of intangible that often gets overlooked during discussions of moving education online. Yes, it is less expensive. No doubt about it. But we lose so much. Students know this. They may not all have known this before but they are seeing things through a different lens today. So are teachers. I hope parents see it as well.

I’ve had almost prefect attendance in my online classes. The reasons for that are many, varied, and complicated but I believe that relationships have had a huge influence. Relationships between students and teachers and relationships with the culture of the school have all played a part. Plus I have really amazing people for students. I’m a lucky guy.

Friday, May 15, 2020

What is your School IT Department’s Mission?

My school ran a pair of online awards events yesterday. We had almost 850 people on the day time Zoom meeting and around 500 on the evening one. These are both on a par with our events in the building in previous years. But that is not what I really want o focus on. I want to focus on how this is possible

As part of the day, the highest award the school presents to a member of the faculty or staff was awarded to our director of technology. It is largely because of his leadership that we were able as a school to move online as quickly and as effectively as we did.

Largely because of his work, our students were used to going online for assignments, to taking quizzes and tests online, and to turning in assignments online. Teachers are used to taking attendance online, giving assignments online, and many other things essential for the running of the classroom. In preparation for moving online faculty were given their first training and preparation weeks before we actually had to move to teaching from home. We got more training once the decision was made.

This happened because our IT department, from the top down and with the support of the school’s administration, has the same mission as the school. The IT people see their role as helping everyone use technology to teach and learn. Our It director has taught several classes the last two years and learned first hand how technology can be used and has used that experience to help prepare teachers to use it.

My school is fortunate to have an experienced and dedicated Director of IT who fully embraces the mission of the school. I suspect that him being a graduate of the school as are his three children doesn’t hurt.

Over the years I have visited many schools were IT departments and teachers, especially computer science teachers, have had an almost adversarial relationship. Teachers may want to teach things that the IT department is afraid of students learning. Or IT departments have made decisions about policy, hardware, and software without considering the needs of teachers.

Among the many lessons we are learning during these unusual time is that teachers and IT have to be partners working together for a common goal and with a common mission.

Thursday, May 07, 2020

More Fun With Live Coding

Live coding or as I like to call it coding without a net is a wonderful way to teach.There was a time when I thought that having prewritten code that was pasted in during a demo was a good thing. You see it a lot in demos at events for coding professionals. It turns out that in a marketing presentation that is fine and dandy but for teaching it just doesn’t work.For one thing, it moves to fast. Students can’t follow it all. And secondly, it avoids making mistakes.

It turns out that making mistakes is useful. When teachers make mistakes students feel less bad about making their own mistakes. Programmers make lots of mistake. Getting very upset or feeling inadequate when one makes a mistake is a sure fire way to get burned out very quickly. So seeing a teacher make a mistake can be comforting.

Of course, what is really important is how the teacher reacts to making a mistake. The obvious advantage to making a mistake is that the teacher gets to model how to fix the mistake. A teacher will, I hope, read the error message and then explain it to their students. For some  reason students have to be taught that reading the error message is helpful. That is strangely not intuitive.

I find that I make several kinds of errors regularly. The most common error is the typo. It’s amazing how poorly my keyboard it as typing what I mean. A great opportunity to point out that they computer is not as good at handling ambiguous spelling as people are. Typos are often a good reminder to slow down as well. Sometimes taking your time is the fast way of doing things.

I also get bit by the logic error. Now you would think that would not happen for a long time professional writing simple code for beginners. What tends to happen in real life is that the good idea fairy strikes in the middle of a demo and I decide to make the demo more interesting by adding something I have never added before.This turns into a great example of why planning BEFORE writing code is such a good idea. It is yet again a wonderful opportunity to model problem solving and debugging. Always take advantage of opportunities to model how to solve problems.

I teach several courses using several different programming languages so the other sort of problem I run into is using code for the wrong language. Visual Basic and C# (and JavaScript) declare variables differently and that seems to be a problem for me some days. As does remembering which languages use semi colons and which ones don’t. I haven;t figured out how to really take advantage of those errors. Any ideas? At least they don’t happen to often.

For me, I have decided to embrace the chances for mistakes. I’m not going to be afraid to make a mistake in front of my students. Life is to short and there is a legitimate upside to it. Now I have to make sure I can explain the error I made at the end of last class.

Tuesday, May 05, 2020

Can Online Teaching Really Work?

There is already a lot of discussion about schools and the fall semester. Will we be in physical spaces again? Will we be online again? Will there be some mix?

[Dallas Texas] District preparing for three possible scenarios to start the 2020-2021 school year

It’s far to soon to know but there are a lot of questions to be answered before decisions are made. I link to some articles below that may be of interest. But for now, I want to ask the question “Can online teaching really work?”

People talk a lot about equity and the digital divide. The current situation sure has highlighted that with access to computers and the Internet being a huge factor in many areas of the country. One would like to think that if we fix  that, give kids computers and an Internet connection that will be enough. As if!

I think there is more to it than the digital divide. I think there is a cultural question of the value of education. In some schools, students who could participate are not. Why? I don't think we know all of the reasons.

I teach to a populations for whom education is critically important. Parents are paying real money for education and kids know that how adults spend money shows what they value. I think that is huge. Talking to my students over the years, they know their parents are making sacrifices for their education. They want to make sure their parents are getting value for that money.

Sure there are the spoiled self-entitled students out there but in a school like  mine the culture values learning. Peer pressure helps motivate students to do school work.

That is not a universal culture. There are schools where the culture says "get out of school as soon as you can" and "you don't really need school but you do need to work." There are schools where students feel they have to go to work to help support their families. There are kids who parents will actually make them leave home at 18 and go on their own. (This is not a myth. I have seen it.)

School culture is very important. Peer pressure can work to help students value school or not value it. So my concern about online teaching is two fold. How will students who are not living in a culture, at home or at school, where it is cool to be smart, where it is important to go to school. or where they don’t feel like they belong motivate themselves to attend online classes?

And how will schools with a supportive culture be able to maintain and grow that culture online? It’s not going to be easy.

And that is just secondary school. I don’t even want to think about grades k-8. No, really, I don’t.  I can’t imagine online school working well at those age levels.

BTW are plans for the fall thinking about teachers? Especially older and otherwise vulnerable teachers?

Friday, April 24, 2020

Planning for the End of the Year

My school will be on our regularly scheduled April break next week. It’s a nice breather for me and probably for the students as well. It’s been a long time since I have had a school aged child in the house so I don’t know what it will be like for parents. One of the things I will be doing is planning. How am I going to finish up this school year?

We’re not doing our normal end of semester/year major assessments. You might think that simplifies things but it really doesn’t. I have final exams and finial project plans already made up. They are no no use to me now.

My Advanced Placement Computer Science Principles students will be finishing up their Explore Task, the last part of the work they are required to complete for the AP Exam, early the week we restart.  I’m looking at various topics to go deeper into as we finish the year. I might as well take advantage of the time that way.

My Honors Programming class has covered the regularly planned material. This is partially a result of the weird schedule, an exceptional group of students, and the fact that normally we would be starting semester projects soon after April break. I don’t really want to add the stress of sneaking in a major project. Two major benefits of the semester project are that they help students see what they have learned in a larger context and that it lets them explore some new ideas on their own. What I am thinking now is that I will introduce some fun stuff that we don’t always get to and let them work on a couple of smaller, but hopefully interesting and challenging, projects. This may achieve what the major semester project usually does.

My freshmen still have new material to learn. They also normally get a semester project to work on but we’ll actually not have as much time for that as I would like One of the other teachers teaching that course is talking about modeling the design and creation of a more complicated project for the students. Not requiring them to write it themselves but seeing him model the design process.. That’s an interesting idea. I haven’t decided what I want to do though. What ever it is has to include most of the major concepts we have learned so far and help students see it in context though. That is my task to develop over the break.

Also, over the break I will spend some time working on some little educational and, hopefully fun, games for my 5 year old grandson. I wrote him a memory game using pictures of him and his family this week and he seems to enjoy it. I’m playing with some sight reading game ideas now.

SO how are you wrapping up your school year? Something different from normal?

Wednesday, April 22, 2020

School Buildings Without Students are Sad

For the first time in 5 weeks I visited school today. My purpose was to clear out my personal stuff. I am retiring and I needed to get everything at some point and since today was a non-teaching day I decided to do it today. We still have a month of school of course but there will not be any return for classes in the building.

The building should be full of students. It’s just not right for a building that was made for students to be without them.  I’m glad I didn’t wander far from my computer lab.

I was fine packing up the boxes. I found a few items I had forgotten about – so that is where the document camera I bought was being kept safe!  I also tossed out a lot of old papers and what not. A student handbook from 2014? Why was that still in the desk drawer? I think the desk is cleaner now than it was when I took it over 7.5 years ago.

Putting things in the car made it seem more final though. I got a touch emotional. I think it was easier to do in an empty building without students and peers around. I’m really going to miss saying a proper good bye to my students and to the other faculty though. At some point the building will be open and I’ll stop by.

I didn’t wander around the building. Judging by cars in the parking lot there were a few people in the building. I saw and talked, at a safe distance,to two of the maintenance people. I’ll miss them. They really embrace the mission of the school and are just awesome people.

No more visits until there are students in the building again.

Thursday, April 16, 2020

Ending School With a Whimper not a Bang

The other shoe dropped today. New Hampshire’s governor ordered public schools to continue emergency remote teaching for the rest of the school year. This was not unexpected as many other states have already come to the same conclusion. At least I can plan better.

Having a bit of certainty, an official last day of classes, no final exams, and a few other details makes planning a lot easier.

We’re still having April break. Our last day of classes will be May 22nd.  We’re skipping final exams which means we can use all the time remaining to cover new material. It also means end of the year grading is a little easier for me. I normally have my freshmen class and Programming Honors courses write semester ending projects.. Without those I have enough time to cover everything I want to cover even though we are meeting fewer sessions than we are used to holding.

I’ve been thinking about all of the personal items I left at school. Normally I would pack up during final exams week and bring every thing home after the end of year teacher meeting. That’s obviously not going to work. I can still get into the building if I need to and because of where my computer lab is I can do so with very little chance of meeting other people.It will be sad packing up in an empty building.

We’re going to try to have a number of the big end of year events, awards, Baccalaureate, and even Commencement virtually.  I wonder if I will be asked to wear my academic gown for Commencement? I really do get a kick out of wearing that but wearing it where no one can see it seems pointless.

I really feel badly for the students, especially the seniors. They are missing some once in a life time activities. Sure many of them will have graduation from university or even graduate school but there is something special about high school graduation.

Tuesday, April 14, 2020

Planning For School in the Fall of 2020

This time of year I always start thinking about the next school year. Even though I don’t expect to be teaching (announced my retirement already) I can’t stop thinking about the fall. Will schools be in their buildings or will the start the year teaching remotely. Universities are thinking about a possible school year without students on campus. I don’t think anyone wants that. It’s a worst case situation.

There are some learnings we can use which ever way we go though. As I have written earlier, my school is using virtual machines that students can connect to from home. I really hope this is in place in the fall. It opens the door for so many options, especially but not exclusively, for computer science programs. If I were at VMware or Microsoft I would be working on cookbook solutions for school IT people to work with over the summer.

Other options like servers hosted on Microsoft Azure or Amazon Web Services (AWS) may also be good options. They would have to work on good pricing and easy to follow instructions for IT people, teachers, and students though to make it work.

I know schools using GitHub very effectively as well. That has an advantage of teaching an important industry skill. It has the disadvantage in that students may not have the right software of powerful enough computers at home. Maybe a hybrid solution with GitHub and some virtual machines would help here. Again, none of this scales with training resources for teachers. Not every It person is as good as the one at my school. And even he is constantly learning new things.

Learning Management Systems may have to adapt as well. Can your schools LMS distribute and collect assignments? many can but some cannot. Schools are likely to be looking closely at how well their LMS handles remote teaching.

Our current computer conferencing solutions seem much better suited for industry than for education. Other issues are showing up just because so many more people are using these tools. Poor Zoom has been playing catchup with concerns for the last month. Google Meet has also be changing and improving because of feedback from educators. Microsoft Teams is used by a few (and they mostly like it) but not many seem to know about it. I do expect a lot more online training for Teams aimed at schools to come. There is already a lot. Perhaps all of these companies, if they get a chance to catch their breath, will start looking closely at the needs of educators.

I have already seen surveys from companies asking teachers what problems they have and how they are trying to solve them. Teacher needs have never gotten so much attention from companies large and small. Maybe we’ll see a big jump in functionality for schools and teachers. A man can hope.

Right now we don’t know what will happen in the fall. Will there be enough testing and treatment for families to feel comfortable sending there children into schools which are germ factories in the best of times. Or will we be starting the year teaching and learning remotely? No one really knows. So we plan for the first and hope for the best.

Monday, April 13, 2020

Revisiting Old Coding Problem Friends

John Conway died the other day. He created the famous "Conway's Game of Life" that is familiar to so many programmers and computer scientists.

I've recently decided I want to write some fun programs and since I can't find the last version of this program that I did I decided to write a new one. Very satisfying.

I did all the things I tell my students to do. I broke it down into small modular methods and tested each individual method as it was finished. Interestingly enough the hardest part, relatively speaking, what getting the generations right. The Wikipedia page, linked to above, had some of the common and interesting patterns and I used them to validate my algorithm.

I came close to making the common mistake my students make of “testing” without knowing what good results are. The patterns in Wikipedia helped with that.

The Game of Life is a cool project. I should really assign it to my students this year.

Saturday, April 11, 2020

A Look at Technology For Remotely Teaching Computer Science

While I do believe that people are the most important part of emergency remote teaching,  technology does have a serious role to play. One key piece of technology that my school is using is virtual machines that students connect to from home over the Internet. This gives them full access to the resources they would have if they were in our physical computer labs. I had our wonderful Director of Technology describe what he set up.

“Essentially what I've done is set up a Windows Server 2019 Remote Desktop Server. I then used VMWare Horizon and created a RDS Server Farm with VMWare and use VMWare security server for the connection broker. This can also be done with Windows Server creating a connection broker, but for me it was easier to use VMware.
No VPN required which was the goal. I configured the server to behave like the students desktops on the computers in our labs. Basically students can log in from any basic device, Windows, Mac, Chromebook and get a Windows 10ish interface that they can work on.”

The extra goodie that I learned to use the other day is the Microsoft Server Manager It looks to be a very powerful tool.  I am pretty sure I don’t want to mess around with it too much. I don’t want t o break what is already working.

The one feature I will be using with students starting on Monday is one that lets me look at and even control student sessions. This should make debugging student issues much easier.  It is still not the same as being there but it’s as good as I’m going to get anytime soon.

Friday, April 10, 2020

Emergency Remote Teaching is About People Not Technology

Attendance at my emergency remote teaching classes has been very close to 100%. Frankly, this didn’t surprise me at all. Apparently I should have been surprised. According to a poll reported by NPR, 4 In 10 U.S. Teens Say They Haven't Done Online Learning Since Schools Closed The difference between public and private shows a huge difference though. According to the article  “47% of public school students saying they have not attended a class, compared with just 18% of private school students.”

I don’t think that it is enough to say public or private though. I attended a public magnet high school as a student myself and even today that school bucks the trend. According to a New York  Times article “At Brooklyn Technical High School, one of the city’s most competitive, Serge Avery, a social studies teacher, said 98 percent of his students have been participating in daily online activities,”

There is a lot at play here of course  Privilege is a major factor but there is more to that. Somewhere around 61% of Brooklyn Tech’s students qualify for free or reduced cost lunch.

I was asked specifically about why my school has such a high participation rate.

There is no one thing at play. I think the school culture has a lot to do with it. I think this is true of any school. Education is important to our students. They give up something to attend our school. There is a parallels here with Brooklyn Teck. Both school require leaving one’s local high school and travelling. Both schools make it hard to git in but provide a lot of support to students who do attend.

My school started planning and preparing students and teachers for this weeks before we went online. It was no big surprise when it happened. Students were mentally ready to move online. Many of the tools we use online are tools they have been using for a long time. They were already used to receiving and turning in assignments online for example. Many of them have used video chat of one form or another for years.

I think relationships between students and teachers (perhaps part of the culture) also plays a part. Part of our school’s whole belief system is that students are known, valued, and treasured. Students joke about it some but they know it is a core value and respond well to it.

At its core this is a people issue not a technology issue. Students participate if they see the value in participating. We are still grading - progress reports come out today and we have been online for four weeks. Parents want their kids to learn. That is what they are paying for and they do so because they value education. Students do tend to value what their parents value.

If school matters, students attend.

Wednesday, April 08, 2020

When Are We Going Back To (bricks and mortar) School?

That’s the question my students asked the most yesterday. We’re in our fourth week of remote emergency teaching and I think it is starting to wear on most of us. It especially hard on the young people though. One thing I am more and more convinced of is that school is a great deal more than sitting in a classroom and doing school work. My students, consciously or not, are realizing the same thing.

Those casual interactions between classes are important to our students. Students interact with their peers and their teachers in ways that are often overlooked but which make up the total school experience.

Going to school online is not going to be a replacement for going to school in a physical place.

Dr. Fauci has been saying that he expects that schools will reopen in the fall. I didn’t hear any indication in his most recent remarks that suggest they will open again this spring. Summer camps are still at risk according to Dr. Fauci. I wonder what summer break is going to be like.

When we return in the fall, things are going to be different. I hope they will be better. Testing is getting better and the prospects for better medical treatment and even a vaccine are looking up. Most experts expect COVID-19 to be back in the fall again. We all hope not as bad but I think we’ll all be thinking about sick students differently than in the past.

Any teacher will tell you that students come to school sick. Some because there is no one to take care of them at home. Some because they don’t want to miss any more school. At my school we see a lot of the latter. One think I hope we learn about and prepare for is letting students stay home and attend classes remotely. We’re all learning about the tools we have now and perhaps the tools will get even better. If more students can stay home when sick and not miss as much of their education schools will become healthier places.

There are many other things that will happen in well-run schools to make them healthier places. Better cleaning and more attention to covering ones mouth when coughing just to name two.. We’re all becoming more sensitive to what spreads germs.

We’re really seeing how much more there is to school than most people ever realized. Perhaps it will lead to less penny pinching of education in the future. I can only hope.

Tuesday, April 07, 2020

Living in Interesting Times and Sharing Thinking

You may have noticed I didn’t post anything in this blog yesterday. Part of that is because I had to make an unexpected trip to my family’s vacation home. A neighbor reported an open window and we can’t have that. It was weird driving though what is normally a booming tourist and vacation area and not seeing much traffic and most all of the businesses closed. People are staying home.

While I didn’t post here yesterday that doesn’t mean I kept my metaphoric mouth shut. Doug Peterson interviewed me over the weekend and posted the result on his blog.I think it is some of my best thinking. Doug knows how to ask questions that get me thinking. You can read that interview at 10 Questions for Alfred Thompson

My good friend, Jane Prey  also had questions for me. She wanted to know what I wished I had known before I started remote emergency teaching. My thoughts may be read as the CSTA web site at Software, Hardware, and People

Last week I asked people to blog more about their experiences and how they are teaching. A number of people have been doing that. Mark Guzdial wrote two posts over the last couple of days. While he is teaching at the university level I think there is good advice for all educators in them. I recommend them to you.

Dan Anderson has his own COVID19 Update on his blog. In it he shares the questions he is asking to check in with his students. I think we all know that teaching is about more than just covering the subject matter.  I hope to see more from Dan. 

IF you are looking for how the move looks at my school from the administration point of view this article is a good read Private School Profiles: How Bishop Guertin High School is Responding to COVID-19

Sunday, April 05, 2020

Coding For Fun and Mental Exercise

Recently, I started reading a book about the mathematics of cryptography. (Mathematics of Secrets) Fascinating. A lot of the math is hard (to put it lightly) for me but the stories that go along with the development of it all are fascinating.

So far I have learned a few things and made my Caesar Cipher program much more efficient. I really need to revisit my Vigenère cipher program and make it more efficient and more interesting. The other night I coded up a quick transposition cipher. It was fun and once I got the algorithm down in code it was easier to get to sleep. Writing the code does help me understand what I am reading and that is a real benefit.

We’ll see how I am feeling when I get to the chapter on public key encryption. So far, I am sticking with the easy math and playing with ciphers that are far from modern cryptography. I'll leave that to the professionals.

Caesar and Vigenere are common enough programming assignments but I may write up the transposition cipher as a project for future use. If not for my own classroom for a project book I have in mind. Miles Berry pointed out that teaching ciphers by having students write a little code and experiment with different variations is much more fun and engaging for students than exercises away from the computer. Doing this stuff by hand can be a bit tedious.

For now though I am finding some pleasure is writing some not very complicated code as a way of exploring ideas that I am learning. I’ve had a chance to play with some libraries and methods that I haven’t really gotten to use before. That’s been fun. So much of my coding the last couple of years as been limited to the stuff I teach in a first programming course. I’m using this time to stretch myself a bit. Perhaps get my coding “muscles” back in shape.

In any case, for me,  coding == fun

Friday, April 03, 2020

Three Weeks of Teaching From Home

two of my international students have returned home to China. I spent some time talking to one of them after class today.It was interesting to talk to someone in quarantine. I’ve never done that personally with someone I know. He told me the first couple of days were fine. Eat, Sleep, go to class, and play games. After about three days it got pretty old. He is not allowed to leave his hotel room. Meals are brought to him. They take his temperature three times a day. Not an easy schedule for a teen aged boy.

I think that attending classes virtually are probably pretty helpful for him. They keep him connected with people and some sense of normal in a very abnormal situation. I know it is helping me.

A lot of schools seem to be having a lot less teacher student interaction. Often it seems like assignments are distributed on Monday, collected on Friday, and teachers hold virtual office hours once or twice a week.Sounds like a nightmare to me. Trying to create assignments that students can do and that make educational sense to do without a teacher in the room or presenting some information first is a scary thought for me. How does one even do that? At least my students are getting new material and things are progressing even though slower than normal.

One school district near me went though all sorts of hoops just to get to the point where teachers can record themselves and share videos. Online meetings are still optional for teachers and students. I feel bad for all concerned.

At my school, we’re still planning only in short periods of time. We’re still going to have our scheduled vacation week the last week in April. Its too early to plan beyond that. Next week is Easter week and as a Catholic school we will not be having classes on Good Friday. We may go to four day weeks after that as well but I don’t know if that has been decided yet. Baby steps.

Thursday, April 02, 2020

Please Blog About Your Emergency Remote Teaching

It seems like there are a large number of long Twitter treads where educators are reporting their experiences and how their school is handling this period of emergency online teaching.  I love reading them but they are hard to follow, hard to find, and hard to share. They are also fleeting. I wish more people would use this time to start a blog.

Personally, I have found blogging about what is going on in my teaching practice and what I am learning to be a great  stress reliever. It is also creating a resource I can look back on later to see what happened and how things appeared at the time.

Blogger, GitHub, WordPress, Medium, and Tumblr are some sites you can use and have free offerings. I found this line that may help you choose one. How to Choose the Best Blogging Platform in 2020 (Compared)

Think about it. We’re teaching in a new time and in a new way. No one is an expert yet and we all have things to share. Let me know if you decide to start a blog and I will link to it for here. And read it. I want to know what you are up to.