How I’m lecturing during emergency remote teaching

Alfred Thompson (whom most of my readers already know) has a recent blog post requesting: Please blog about your emergency remote teaching (see post here). Alfred is right. We ought to be talking about what we’re doing and sharing our practices, so we get better at it. Reflecting and sharing our teaching practices is a terrific way to improve CS teaching, which Josh Tenenberg and Sally Fincher told us about in their Disciplinary Commons

My CACM Blog Post this month is on our contingency plan that we created to give students an “out” in case they become ill or just can’t continue with the class — see post here. I encourage all my readers who are CS teachers to create such a contingency plan and make it explicit to your students.

I am writing to tell you what I’m doing in my lectures with my co-instructor Sai R. Gouravajhala. I can’t argue that this is a “best” practice. This stuff is hard. Eugene Wallingford has been blogging about his emergency remote teaching practice (see post here). The Chronicle of Higher Education recently ran an article about how difficult it is to teach via online video like Zoom or BlueJeans (see article here). We’re all being forced into this situation with little preparation. We just deal with it based on our goals for our teaching practice.

For me, keeping peer instruction was my top priority. I use the recommended peer instruction (PI) protocol from Eric Mazur’s group at Harvard, as was taught to me by Beth Simon, Leo Porter, and Cynthia Lee (see http://peerinstruction4cs.com/): I pose a question for everybody, then I encourage class discussion, then I pose the question again and ask for consensus answers. I use participation in that second question (typically gathered via app or clicker device) towards a participation grade in the class — not correct/incorrect, just participating. 

My plan was to do all of this in a synchronous lecture with Google Forms, based on a great recommendation from Chinmay Kulkarni. I would have a Google Form that everyone answered, then I’d encourage discussion. Students are working on team projects, and we have a campus license for Microsoft Teams, so I encouraged students to set that up before lecture and discuss with their teams. On a second Google Form with the same question, I also collect their email addresses. I wrote a script to give them participation credit if I get their email address at least once during the class PI questions.

Then the day before my first lecture, I was convinced on Twitter by David Feldon and Justin Reich that I should provide an asynchronous option (see thread here). I know that I have students who are back home overseas and are not in my timezone. They need to be able to watch the video at another time. I now know that I have students with little Internet access. So, I do all the same things, but I record the lecture and I leave the Google Forms open for 24 hours after the last class. The links to the Google Forms are in the posted slides and in the recorded lectures. To fill out the PI questions for participation, they would have to at least look at that the lecture.

I’m so glad that I did. As I tweeted, I had 188 responses to the PI questions after the lectures ended. 24 hours later, I had 233 responses. About 20% of my students didn’t get the synchronous lecture, but still got some opportunity to learn through the asynchronous component. The numbers have been similar for every lecture since that first.

I lecture, but typically only for 10-15 minutes between questions. I have 4-5 questions in an 85 minute lecture. The questions take longer now. I can’t just move the lecture along when most of the students answer, as I could with clickers. I typically give the 130+ students 90 seconds to get the link entered and answer the question. 

I have wondered if I should just go to a fully asynchronous lecture, so I asked my students via a PI question. 85% say that they want to see the lecturer in the video. They like that I can respond to chat and to answers in Google Forms. (I appreciate how Google Forms lets me see a summary of answers in real-time, so that I can respond to answers.) I’d love to have a real, synchronous give-and-take discussion, but my class is just too big. I typically get 130+ students synchronously participating in a lecture. It’s hard to have that many students participate in the chat, let alone see video streams for all of them.

We’re down to the last week of lecture, then we’ll have presentations of their final projects. They will prepare videos of their presentations, and receive peer comments. Each student has been assigned four teams to provide peer feedback on. Each team has a Google Doc to collect feedback on their project.

So, that’s my practice. In the comments, I’d welcome advice on improving the practice (though I do hope not to have to do this again anytime soon!), and your description of your practice. Let’s share.

April 6, 2020 at 7:00 am 2 comments

So much to learn about emergency remote teaching, but so little to claim about online learning

The Chronicle of Higher Education published an article by Jonathan Zimmerman on March 10 arguing that we should use the dramatic shift to online classes due to Covid-19 pandemic as an opportunity to research online learning (see article here).

For the first time, entire student bodies have been compelled to take all of their classes online. So we can examine how they perform in these courses compared to the face-to-face kind, without worrying about the bias of self-selection.

It might be hard to get good data if the online instruction only lasts a few weeks. But at institutions that have moved to online-only for the rest of the semester, we should be able to measure how much students learn in that medium compared to the face-to-face instruction they received earlier.

To be sure, the abrupt and rushed shift to a new format might not make these courses representative of online instruction as a whole. And we also have to remember that many faculty members will be teaching online for the first time, so they’ll probably be less skilled than professors who have more experience with the medium. But these are the kinds of problems that a good social scientist can solve.

I strongly disagree with Zimmerman’s argument. There is a lot to study here. There is little to claim about online learning.

What we are doing right now is not even close to best practice for online learning. I recommend John Daniels’ book Mega-Universities (Amazon link). One of his analyses is a contrast with online learning structured as “correspondence school” (e.g., send out high-quality materials, require student work, provide structured feedback) or as a “remote classroom” (e.g., video record lectures, replicate in-classroom structures). Remote classrooms tend to have lower-retention and increase costs as the number of students scale. Correspondence school models are expensive (in money and time) to produce, but scales well and has low cost for large numbers. What we’re doing is much closer to remote classrooms than correspondence school. Experience with MOOCs supports this analysis. Doing it well takes time and is expensive, and is carefully-structured. It’s not thrown together with less than a week’s notice.

My first thought when I read Zimmerman’s essay was for the ethics of any experiment comparing to the enforced move to online classes versus face-to-face classe. Students and faculty did not choose to be part of this study. They are being forced into online classes. How can we possibly compare face-to-face classes that have been carefully designed, with hastily-assembled online versions that nobody wants at a time when the world is suffering a crisis. This isn’t a fair nor ethical comparison.

Ian Milligan recommends that we change our language to avoid these kinds of comparisons, and I agree. He writes (see link here) that we should stop calling this “online learning” and instead call it “emergency remote teaching.” Nobody would compare “business as usual” to an “emergency response” in terms of learning outcomes, efficiency, student satisfaction, and development of confidence and self-efficacy.

On the other hand, I do hope that education researchers, e.g., ethnographers, are tracking what happens. This is first-ever event, to move classes online with little notice. We should watch what happens. We should track, reflect, and learn about the experience.

But we shouldn’t make claims about online learning. There is no experiment here. There is a crisis, and we are all trying to do our best under the circumstances.

March 30, 2020 at 10:20 am 7 comments

What I learned from taking a MOOC: Live Object Programming in Pharo

I wrote this post a month ago, before COVID-19 changed how a great many of us teach in higher education. It feels so long ago now. I thought about writing a different post for this week, one about how I’m managing my large (260+) Senior-level User Interface Development class with projects. But I realize — I have a ton of those kinds of posts in my to-read queue now. We’re all being bombarded with advice on how to take our classes on-line. I can’t read it all. I’m sure that you can’t either.

So instead, I decided to move this post up in the queue. It’s about taking the students’ perspective. I worry about what’s going to happen to students as we all move into on-line modes. I wrote my Blog@CACM post this week about how the lowest-performing students are the ones who will be most hurt by the move to on-line — you can find that post here. This is a related story: What I learned about MOOCs by taking a MOOC.

I received in February my certificate of success for the MOOC I took on Pharo. I have not, in general, been a big fan of MOOCs (among many other posts, here’s one I wrote in 2018 about MOOCs and ethics). This MOOC was perfect for what I needed and wanted. But I’m still not generally a MOOC fan.

I’m a long-time Smalltalk programmer and have written or edited a couple of books about Squeak. I’m building software again at the University of Michigan (see the task-specific programming environments I’ve posted about). Pharo is a terrific, modern Smalltalk that I’d like to use.

A MOOC on Pharo matched what I needed. I fit the demographics of a student who succeeds at a MOOC — I already know a lot about the material, and I’m looking for specific pieces of information. Pharo has a test-driven development model that is remarkable. You define your classes, then start writing tests, and then you execute them. You can then build your system from the Debugger! You get prompts like, “You’re referencing the instance variable window here, but it doesn’t exist. Shall I create it for you?” I’ve never programmed like that before, and it was great to learn all the support Pharo has for that style of programming.

Yes, it was in French. They provide versions of the videos dubbed in English, and the French version can display English captions. I preferred the latter. I had French in undergraduate, which means that I didn’t understand everything, but I understood occasional words which was enough to be able to synchronize between the video and the captions to figure out what was going on.

My favorite part of the MOOC was just watching the videos of Stéphane Ducasse programming. He’s a very expert Smalltalk programmer. It’s great seeing how he works and hearing him think aloud while he’s programming. But he’s very, very expert — there were things he did that I had to re-watch in slow motion to figure out, “Okay, how did he do that?”

The MOOC was better than just a set of videos. The exercises made sure I actually tried to think about what the videos were saying. But it’s clear that the exercises were not developed by assessment experts. There were lots of fill in the blanks like “Name the class that does X.” Who cares? I can always look that up. It’s a problem that the exercises were developed by Smalltalk experts. Some of the problems were of a form that would be simple, if you knew the right tool or the right option (e.g., “Which of the below is not a message that instances of the class Y understand?”), but I often couldn’t remember or find the right tool. Tools can fall into the experts’ blind spot. Good assessments should scaffold me in figuring out the answer (e.g., worked examples or subgoal labels).

I ran into one of the problems that MOOCs suffer — they’re really expensive to make and update. The Pharo MOOC was written for Pharo 6.0. Pharo 8.0 was just released. Not all the packages in the MOOC still work in 8.0, or there are updated versions that aren’t exactly the same as in the videos. There were things in the MOOC that I couldn’t do in modern Pharo. It’s hard and costly to keep a MOOC updated over time.

My opinions about MOOCs haven’t changed. They’re a great way for experienced people to get a bit more knowledge. That’s where the Georgia Tech OMSCS works. But I still they that they are a terrible way to help people who need initial knowledge, and they don’t help to broaden participation in computing.

March 23, 2020 at 7:00 am Leave a comment

How do we test the cultural assumptions of our assessments?

I’m teaching a course on user interface software development for about 260 students this semester. We just had a Midterm where I felt I bobbled one of the assessment questions because I made cultural assumptions. I’m wondering how I could have avoided that.

I’m a big fan of multiple choice, fill-in-the-blank, and Parsons problems on my assessments. I use my Parson problem generator a lot (see link here). For example, on this one, students had to arrange the scrambled parts of an HTML file in order to achieve a given DOM tree, and there were two programs in JavaScript (using constructors and prototypes) that they had to unscramble.

I typically ask some definitional questions about user interfaces at the start, about ideas like signifiers, affordances, learned associations, and metaphors. Like Dan Garcia (see his CS-Ed Podcast), I believe in starting out the exam with some easy things, to buoy confidence. They’re typically only worth a couple points, and I try to make the distractors fun. Here’s an example:

Since we watched in lecture a nice video starring Don Norman explaining “Norman doors,” I was pretty sure that anyone who actually attended lecture that day would know that the answer was the first one in the list. Still, maybe a half-dozen students chose the second item.

Here’s the one that bothered me much more.

I meant for the answer to be the first item on the list. In fact, almost the exact words were on the midterm exam review, so that students who studied the review guide would know immediately what we wanted. (I do know that working memory doesn’t actually store more for experts — I made a simplification to make the definition easier to keep in mind.)

Perhaps a dozen student chose the second item: “Familiarity breeds contempt. Experts contempt for their user interfaces allows them to use them without a sense of cognitive overload.” I had several students ask me during the exam, “What’s contempt?” I realized that many of my students didn’t know the word or the famous phrase (dates back to Chaucer).

Then one student actually wrote on his exam, “I’m assuming that contempt means learned contentment.” If you make that assumption, the item doesn’t sound ridiculous: “Familiarity breeds learned contentment. Experts learned contentment for their user interfaces allows them to use them without a sense of cognitive overload.”

I had accidentally created an assessment that expected a particular cultural context. The midterm was developed over several weeks, and reviewed by my co-instructor, graduate student instructor, five undergraduate assistants, and three undergraduate graders. We’re a pretty diverse bunch. We had found and fixed perhaps a dozen errors in the exam during the development period. We’d never noted this problem.

I’m not sure how I could have avoided this mistake. How does one remain aware of one’s own cultural assumptions? I’m thinking of the McLuhan quote: “I don’t know who discovered water, but it wasn’t a fish.” I feel bad for the students who got this problem wrong because they didn’t know the quote or the meaning of the word “contempt.” What do you think? How might I have discovered the cultural assumptions in my assessment?

March 16, 2020 at 1:57 pm 15 comments

Ebooks, Handbooks, Strong Themes, and Undergraduate Research: SIGCSE 2020 Preview

A few items on things that we’re doing at SIGCSE 2020. Yes, SIGCSE 2020 is still have a face-to-face meeting. Attendance looks to be down by at least 30% because of coronavirus fears.

Barbara Ericson (and Brad Miller, who won’t be there) are presenting a paper on their amazingly successful Runestone open-source platform for publishing ebooks: Runestone: A Platform for Free, On-line, and Interactive Ebooks on Sat Mar 14, 2020 11:10 AM – 11:35 AM in D135. They are also hosting a workshop to help others to develop with Runestone: Workshop #401: Using and Customizing Ebooks for Computing Courses with Runestone Interactive on Sat Mar 14, 2020 3:30 PM – 6:30 PM in C120.

I’m part of the massive special session on Thursday 1:45 PM – 3:00 PM in B113 that Colleen Lewis is organizing: Session 2H: The Cambridge Handbook of Computing Education Research Summarized in 75 minutes. Colleen, who must have done graduate work in organizational management (or perhaps cat herding), has organized 25 authors (!) to present the entire Handbook in a single session. Even if I wasn’t one of the presenters, I’d go just to see if we can all pull it off! It’s going to be kind of like watching NASCAR — you’re on the edge of your seat as everyone tries to avoid crashing into one another.

Bravo to Bob Sloan who got this panel accepted this year: Session 6K: CS + X Meets CS 1: Strongly Themed Intro Courses on Fri Mar 13, 2020 3:45 PM – 5:00 PM in Portland Ball Room 255. The panelists are teachers and developers who have put together contextualized introductions to computing, like Media Computation. The panelists have done interesting classes, and I’m eager to hear what they have to say about them.

I am collaborating with Sindhu Kutty on her interesting summer reading group to engage undergraduates in CS research. (Read as: we meet occasionally to work on assessment, but Sindhu is really doing all the work.) The evidence suggests that she’s able to give undergraduates a better understanding of CS graduate research, at a larger scale (e.g. a couple dozen students to one faculty member) than typical undergraduate research programs. It seems like it might feel a bit safer and easier to try for female students. She was going to present a poster at RESPECT on Wednesday Undergraduate Student Research With Low Faculty Cost, but it’s now going to be virtual. I’m not sure how it’s going to work right now.

March 11, 2020 at 7:00 am 9 comments

Defining CS Ed out of existence: Have we made CS too hard to learn and teach?

It was this quote in a tweet from Miles Berry that really made me sit up and take notice of the latest news about the Computing at School initiative:

“If computing increasingly means CS, it looks likely that hundreds of thousands of students, particularly girls and poorer students, will be disenfranchised from a digital education over the next few years.”

He was quoting an article from the New Statesman which can be found here. It describes the history of the rise of the CS curriculum in England. The key paragraph for me is:

The new curriculum was failing. While a tougher course had been introduced, few students were taking it and even fewer teachers could teach it. In many cases, even those who could felt uncomfortable doing so.

The government read the reports and has decided to respond. There’s now an enormous investment in England in trying to train new teachers. The question is whether that’s the right investment.

Meanwhile, in Scotland, the headline of this May 2019 article is “Teachers and students in decline: the computing ‘crisis’ in Scotland’s schools.”

Experts are urging the Scottish Government to take radical steps to boost computing science education to prevent the subject from being squeezed out of schools.

The teaching of computing in schools is in “crisis”, practitioners have told The Ferret, with classes shrinking and teachers in short supply. The latest official data shows that the number of children studying the subject declined last year, while the number of teachers has fallen over the last decade.

Despite a national focus on delivering science and technology education and economic development, schools are finding it increasingly difficult to teach computing science to young people, critics say.

Let’s explicitly consider the questions raised in these two articles. Have we defined CS education in such a way that it’s too hard to teach? That it’s not interesting to learn? Maybe that it’s too hard to learn?

I’ve been writing in the last few months about the surprisingly low uptake of CS education in the United States (for example, in this CACM Blog post). No more than 5% of high school students in any US state are getting any CS classes, from the data available. There is value in setting high standards for CS education (as Alan Kay has been arguing), but that’s an argument for the end goal. Where do we start with CS education? How quickly can and will students learn CS education? What does it mean for something to be too hard to teach or too hard to learn?

Overall, US is following a similar strategy as in England and Scotland for computing in K-12: standalone CS classes, heavy emphasis on in-service teacher development, and counting the number of students in CS classes and the number of teachers leading those classes. There is integrated CS in the US, but as far as I know, no state is tracking those numbers. Public policy tends to focus on things that can be measured. Most of the argument against integration says that too little CS is covered in integrated forms. 95% of US students getting no CS at all is even less coverage than CS in integrated forms.

Let’s consider two hypotheses:

Hypothesis #1: We know how to teach computer science in such a way that all students can learn what they need to be technically-literate citizens, or even to develop the prerequisite knowledge they need to be software professionals. We have not yet achieved this goal because we do not have enough teachers to implement the curriculum. Larger investments in teacher development (perhaps including stipends or better pay to CS teachers) would allow us to scale CS Ed to reach everyone.

Hypothesis #2: We have defined computer science education in a way that is too hard to teach (so too few teachers are unwilling to teach it), and that is too hard to learn (which includes not being motivating enough to recruit students or engage student interest in order to achieve learning).

Given the evidence we have in the US, England, and Scotland, which hypothesis is better supported? You may have a Hypothesis #3 or #4 which is also well-supported by the evidence — I am very interested in hearing it.

In general, we tend to take the “insider view” of CS Ed, as Kahneman warned about (see excerpt here). If you step outside CS Ed, are we making progress along a trajectory that leads to CS education for all? And how long is that trajectory? If you were an Education faculty member and learned that CS had less than 5% of US high school students enrolled, wouldn’t it be reasonable to consider it a fad and likely to pass?

As I wrote in my blog post about what I got wrong in the last decade, I no longer think that CS for All is a matter of access. We have to figure out how to improve participation. I’m in support of Hypothesis #2. We need to re-think what and how we teach CS education. Because of my work these days, I suspect that we made a mistake at the design level. I was involved in the early days of the AP CS Principles (AP CSP) process. Most of the AP CSP curricula I’m aware of were developed by and tested with some of the best CS teachers in the US. That design and development process doesn’t promise a curriculum that many teachers can teach and that most students will learn from.

I just got back from a three day visit in Norway, where they are about to roll-out an integration of CS activities (explicitly programming) into mathematics, science, music, and arts & crafts classes. (See workshop about this topic here.). Maybe that would result in more students learning some computer science. Did US, England, and Scotland make a mistake by emphasizing standalone CS classes over integration?

March 9, 2020 at 7:41 am 21 comments

Final (likely) version of JES released, 18 years after first release

JES 6.0 is now available at https://github.com/gatech-csl/jes/releases/tag/6.0. JES is the Jython Environment for Students — it’s a Python IDE implemented in Java and with support for Media Computation built in. It was a lot of work for a bunch of people. Here are the notes from the release as a summary and acknowledgement for all the effort that brought this version fruition.

This is likely the final version of JES, unless a Jython 3.0 is developed.

This version was brought to completion by Nigel Charleston, based on the beta work of Veronica Day and Audrey Zhang (see discussion at this blog post https://computinged.wordpress.com/2019/07/22/beta-release-of-new-jes-jython-environment-for-students-now-available-media-computation-for-python-ide/). Many thanks to R. Benjamin Shapiro for helping us with many technical questions.

JES 6.0 updates Jython to 2.7beta, uses the latest version of JMusic (from https://jythonmusic.me/), fixes many bugs, will run with Java 8, and creates a new facility to generate pictures from a collection of pixels and sounds from a collection of samples.

The Mac version is a little more complicated to run than usual. You will need to have Java 8 installed to run JES. Thanks to Brian Howard and Michael Stewart for helping to figure this out.

The rest of the Mac version installation instructions can be found at the release page.

JES was originally written by a team of Georgia Tech undergraduates taking Senior Design in Summer 2002. It’s been in use and (sporadic) development for almost 18 years now. The previous version of JES was downloaded over 71K times (see counts here). I would not have predicted in 2002 that JES would still be used in 2020, with little maintenance and no additional funding. Software has to be continually maintained, right? I claim no great genius behind the design. How did it happen that it’s still working and being used?

An even more interesting example is our Squeak-based Wikis (Swikis) which were first developed in 1997. Jeff Rick created the version that we used in classes, and wrote about the process in what I think is the first ACM publication on wikis in 2000. Even after he graduated in 2007, they just kept going. The server http://coweb.cc.gatech.edu/ is still running today — I can find at least one Swiki there dating from 2002. I’ve patched the Swiki software only once or twice since Jeff graduated. Jeff did a great job designing Swiki, but I suspect that even he’d be surprised at how long they’ve run with essentially no maintenance.

What are the characteristics of educational technology that remains viable and usable (i.e., useful and actively used) with very little maintenance for well over a decade? Schools are under-resourced, as I talked about in the Thorndike vs Dewey blog post. It’s great to have educational software that just keeps going without maintenance. Maybe that it’s a certain class of software that works like this. Is it that JES and Swiki do so little, such that they’re really just frameworks on which to hang others’ content? Maybe that’s why they’ve been able to keep going for so long?

Your thoughts would be welcome.

March 2, 2020 at 7:00 am 2 comments

Older Posts


Enter your email address to follow this blog and receive notifications of new posts by email.

Join 7,680 other followers

Feeds

Recent Posts

Blog Stats

  • 1,744,439 hits
April 2020
M T W T F S S
 12345
6789101112
13141516171819
20212223242526
27282930  

CS Teaching Tips