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.


Kathleen Weaver said...

For face to face teaching, Lanschool let me monitor students without letting them or their classmates know I was watching. I could also chat with them without anyone knowing, so they would communicate with me.

I've been teaching online for 5 years, and the way that curriculum is set up, I also know pretty well. We get a progress report from the system each week and I know instantly who hasn't turned in work. I also hand grade each assignment (required) and review their quizzes as they do them (not required).

I know pretty quickly with both systems who needs help.

Steve said...

I think I'd try raw timing of a second variation of each problem. Students should certainly have all the time required to do whatever they need to to figure out some core principle or problem. If the student is really picking up the material, 2nd and 3rd problems of the same nature should go relatively quickly (and, of course, they have the incentive to go quickly on these additional problems because they want to get their work done ASAP).

If 2nd/3rd variations were slow to complete, that would be a decent warning sign, I hypothesize.

Garth said...

For online I do the same thing Kathleen does, weekly progress grades. For in class I have small classes and can look. When kids are doing group work it is easy to see who is talking and who is along for the ride. I tell those that are coasting that they are out of the group and need to do their own work for a while. After tears and whining by the ejected student I find out what the problem is.