My favorite kind of computer nerdism class is the lab class. Software development is a skill and the only way to learn it is by doing. A lecture from a successful programmer will not turn beginners into successful programmers.
In mid-March we got kicked out off campus. We had been teaching successfully (at least from our self-serving point of view!) in a classroom at Harvard Medical School. Three groups of three students each in the same room. By walking around we could fairly quickly see what was on everyone’s screen, help as necessary, and talk either to the entire group of 9 or to one group of 3. Groups of 3 could talk amongst themselves without disturbing the others.
Using Webex and Zoom reduced productivity by at least 70 percent. We could work with only one student’s screen at a time and essentially only one team at a time. Switching from screen to screen is a cumbersome time-consuming heavyweight process.
Now that we’re going to stay home for the next 20-50 years (even if we cure coronavirus, we still have influenza as our mortal enemy, right?), what would the ideal infrastructure be for teaching our brand of computer nerdism?
In addition to a personal monitor or two, the teacher needs an array of 9 monitors, each one at least as large physically as a student’s screen (teachers have older eyes than do students, typically!). This will enable the teacher to see what each student is doing and interrupt with help as necessary. We need four voice chat channels: one for each student group and one for the entire class. Each student needs two physical screens. One for himself/herself/zerself/theirself to use for editing and running SQL and R code and one as a mirror of the teacher’s screen (how else will students know which sites teachers like to visit?).
If we had had this infrastructure, I think we could have been 80 percent as productive as we had been during our physical meetings.
Readers: What else would help for hardware and software infrastructure for teaching?