Tuesday, February 11, 2020

Are Large Classes The Answer To a Computer Science Teacher Shortage?

Another teacher reported on Facebook that they were going teach AP CS Principles and that this was the first time they are teaching computer science and their students have no earlier CS class. I wanted to scream. Or cry. Or something. It’s happening a lot these days as we, those of us in the CS for All camp, continue to promote the need for more CS in schools. The shortage of qualified teachers in computer science is real. Catching up with demand is going to take a while.

But, hey, universities are running into the same problem. Can we learn from them? So far most universities seem to be coping by creating larger and larger classes. Listen (or read the transcripts) from interviews on the CS Ed Podcast (highly recommended) and learn about university CS classes with hundreds and even thousands of students. Whoa! And you thought 35 was bad.

Now my first hand experience with large classes is 48 years old when I took a one month intense world history course as an undergraduate. I credit reading the 1,200 page textbook twice with my A more than the lectures. While that seemed to work for me it was history and not computer science. I don’t think it would work for CS.

Now I believe that there are TAs and lab assistants who help university students outside of class but is this really a good way to teach computer science? I’m not so sure it is but even if it does work in university would it work in high school or middle school? I really doubt that. Our students are not quite that mature. And we’ll never get TAs and out of class lab time.

Amy Ko, University of Washington, expresses some concern about this scaling at the university level in a post called The false dichotomy of teaching and research. University administrators are interested in reducing costs and increasing tuition revenue so they probably like the large classes. And MOOCs.

I wonder what the difference is between a class of 2,000 students in a huge lecture hall is from a MOOC with 2,000 online students? I suspect not much beyond, perhaps, lab assistants and TAs in a campus computer lab. Seems like a lot of extra internal motivation is required in either case. I see a shortage of that in high school students especially in non-major courses.

So tl;dr I don’t think large classes or MOOCs are the answer. We really need to be preparing more teachers. And there are no shortcuts.

Tuesday, February 04, 2020

Iowa Caucus 2020–What Happens When Software Doesn’t Work?

It’s too early to tell exactly what went wrong with the Iowa caucus this year but I suspect it will wind up being a case study in several ways. Political Science will look at it for sure. So, I believe, will computer science and software engineering people. We’re hearing complaints that the app, used for collecting the results, didn’t work. As is often the case early on we don’t know exactly what “doesn’t work” means or where the fault lies.

The Iowa Democratic Committee made the counting more complicated for one thing. That may have driven the need or assumption of need for an app. Was that complexity part of the problem? It could be. If the app wasn’t intuitive (cue to HCI people) or the users were not trained well enough than complexity could be a problem.

Was the app itself faulty? Were the communications protocols not robust enough?  Was it the servers on the backend? Little about that is public yet. I guess we’ll find out eventually.

Eventually there will be results as there is a paper trail for all of the voting. Or so we are told. The biggest problem long term is trust. Trust in the Iowa Democrats to run a solid caucus process. Trust in the company who wrote the app to do a good job. And maybe even damage to trust in apps for reporting election results as a concept.

While some are content to make fun of the Iowa Democrats others are crying about conspiracy and about manipulating the vote. The political science people will have a field day with that I suspect. I tend to suspect incompetency over malice. Malice is hard to do in secret.

For us teaching computer science I think the lesson we need to take and to share is that there are big stakes in developing software. The consequences of the software working correctly are big but the consequences of the software not working can be even bigger. And harder to predict.

Monday, February 03, 2020

Check Out The CS Ed Podcast

I first heard about the CS Ed Podcast back when I wrote on debugging. Amy Ko of the university of Washington talked about teaching debugging in a recent interview. I listened to that interview, which I recommend, but did not take the time to dig into previous podcasts. Earlier today I read a post by Mark Guzdial which brought this resource back to my attention.

Welcome to The CS-Ed podcast, hosted by Dr. Kristin Stephens-Martinez at Duke University. This is a podcast where we talk about teaching computer science, with computer science educators, to learn how they teach and manage their classrooms. Find all of our episodes here, along with transcripts and helpful links!

So far there are four podcasts

I haven't been through all of these yet. So far just the Amy Ko and Dan Garcia ones. I read the transcripts for the most part and really appreciate that I can choose between reading and listening. Those of you who listen to podcasts may have a different preference. But I agree with Mark Guzdial's recommendation that these are valuable resources for anyone teaching computer science.

Friday, January 24, 2020

The System Knows Who You Are

True confession – give me an app that plays with interesting and personal data and I’ll play for a while. The amount of data available to us today is astounding and computer programming lets us do some really amazing things. Big data is all the rage. The US Social Security Administration has lots of data and it’s all more or less personal. So I guess is it not surprising that people do interesting things with it. For example, Guessing Names Based on What They Start With

It had some trouble with my name because even in the decade I was born in my name was not that common. As I added letters it was able to get it – not that surprising. Although for the decade my grandson was born it never did get it – Alfredo is a lot more common than Alfred. A sign of changing demographics which makes for an interesting topic of its own.

I’ve toyed with the idea of making this into a project for my students but I’m not sure I have the time. Basically because I would probably want to aggregate the raw data myself first and while I could write some code to do that I am not sure I want to. It still makes an interesting demo and I will probably use it that way when we talk about big data in my AP CS It’s a good example of how a system can make some assumptions based on limited information.

We like to think that we are pretty unique and in fact we really are. The fact that this name app can identify us is not really contrary to that. Yes, we have similarities with many people but we also have differences. This app made me think of an app I had students program a couple of times that uses demographic information from the school’s student information system (anonymized). I wrote about that a couple of years ago at Programming Projects Should Be Personal

That project took sex, birthday and zip code information to report on how many individuals in the school had that birthday and lived in that zip code? Could we combine the age guess and the name guess code to identify which student we were looking at? Maybe. Is that good or bad? Maybe. I can see this being a good discussion topic.

Increasingly companies collect more and more personal data about us. And they share this data with other companies. These app give a clue as to how identifiable we are even when we think we are not identifiable. It’s only going to get – is it getting better or worse? A lot depends on how it is used. Students need to understand the possibilities if they are going to understand the world around them. Let’s talk about it with them.

Thursday, January 23, 2020

Should We Use the Technology in the Classroom?

I confess that I would love some augmented reality device that showed me the name of the student I was looking at. I am horrible with names. I like to think that something like this would help me a) learn student names faster and b) establish better connections earlier. On the other hand there is some technology that I worry would hurt relationships more than help them.

For example, an AI and cameras that would tell a teacher who was and was not paying attention. Are Your Students Bored? This AI Could Tell You I can see where having an indication of where you start losing student attention could be helpful. On the other hand, maybe as a teacher I should be paying attention to the people in front of me. That is not impossible in a small classroom like a normal high school room. Maybe it is a lot in a large lecture room but that is an example of not building connections in the first place.

Or tracking students using their phones? Colleges are turning students’ phones into surveillance machines, tracking the locations of hundreds of thousands Sure I hate taking attendance and having the computer do it is tempting. Is that really the sort of intrusion that we want to get students used to though? I’m not so sure it is.

As with so much of technology, the question is one of balance. Do the down sides overshadow the up sides or not? This is not an easy question and I think wide open to debate. As technology grows our students are going to have to decide more of them as time goes along. The question is not “can we do it” but “should we do it?” Making those decisions requires understanding of the technology for sure. It also requires a solid ethical foundation and a willingness to question and discuss. Are these “soft skills?” Perhaps but they are becoming more essential rather than less.

Wednesday, January 22, 2020

Thinking and Teaching about Technology Policy Issues

What are the top technology issues for the 2020s? Brad Smith, Microsoft President, wrote an interesting post about a month ago called Dawn of a Decade: The Top Ten Tech Policy Issues for the 2020s

His list is:

  1. Sustainability - Tech’s role in the race to address climate change

  2. Defending Democracy - International threats and internal challenges

  3. Journalism - Technology needs to give the news business a boost

  4. Privacy in an AI Era - From the second wave to the third

  5. Data and National Sovereignty - Economics meet geopolitics

  6. Digital Safety - The need to constantly battle evolving threats

  7. Internet Inequality - A world of haves and have-nots

  8. A Tech Cold War - Will we see a digital iron curtain down the Pacific?

  9. Ethics for Artificial Intelligence - Humanity needs to govern machines

  10. Jobs and Income Inequality in an AI Economy - How will the world manage a disruptive decade?

I see a lot to agree with and a lot that requires some serious and deep thought. I wonder, for example,  how to square the concerns in 2, 4,8, and 9 with Microsoft’s businesses in China. It’s a topic well worth discussing.

OF course any of these issues, alone or in conjunction with others, are great topics for discussion in a class. Artificial Intelligence factors in with many, maybe most, of these issues. Are we preparing students for thinking about the reality of a world with AI is a major force in technology and eventually our daily lives?

Any way, I recommend the post.  It is long but worth the read. Maybe read it more than once. I plan to.

Monday, January 13, 2020

Having Fun With Computer Science

There is no question that there are a lot of ways to have fun with computer science. Some of them are inexpensive. Some of them cost a lot of money. You can do a lot for a little bit of money. But some interesting things cost more money for computer hardware (especially graphics cards and CPUs), for special software (not everyone offers free versions for schools) or special hardware (A Micro:Bit is pretty inexpensive but an Oculus Quest is serious money).

So what is a teacher to do? Well, there are grants out these. Often very competitive though. There is Donors Choose which is not an option if you are at a private school with a budget that makes public schools look rich. There is teacher spending their own money. Or there is just offering what your school can afford even is that is old hardware and free software.

Now you can do a lot on the cheap. No question. But what I wonder about, as with many things CS education related, is access. Who gets access to the state of the art, bleeding edge stuff and who gets to see “where we were 10 years ago?”

Who gets to program virtual reality stuff and who gets to program the next Pong? When we look at costs for computer science we tend to think mostly about teacher costs or finding room in the building or the schedule. Computers come next but someone who spends their who life on their phone or a web browser may not appreciate why students need a computer with a lot of memory, a fast CPU, and a late model graphics card. Maybe when today’s students become school administrators or school board members that will change but right now getting more money for hardware can be a tough sell.

We’re used to vocational students needing state of the art resources. Computers for reading diagnostics for the automotive students. The latest silkscreen equipment for the graphic artists. The latest medical learning tools (have you see the CPR training dummies lately?) for the medical prep students. But somehow we don’t always see the need for the latest for computer science students. Especially in comprehensive high schools. Some serious CS students might be better off in a career/technical high school for CS. Seriously, some of them are really good at getting the latest stuff for learning CS.

Which brings me back to access. CS is more than vocational. A lot more. How do we show students the real potential if they only have access to what is cheap?

Note: This post inspired in part by Garth Flint’s blog post (Computer Science on the Cheap does not always work), a comment on that post, and things David Renton is doing with his students and Virtual Reality.