Long ago (1988) I moved to Berkeley and started sending a monthly "newsletter" to my Boston friends. When I returned to Boston (1993), I continued the tradition for about five more years (or until I had kids). Looking back, I realize that I was actually blogging. Each newsletter contained anywhere from a few to several blog posts. Having been silent for the past decade or so, I've decided to resume these activities. Don't expect anything profound -- I tend to focus on what I find entertaining or amusing and perhaps sometimes informative. We shall see!

Thursday, April 20, 2017

Happy Birthday Harry

As some of you may recall, I have an odd fascination with Dr. Seuss. I've posted a few before. So, in that spirit, on the occasion of my advisor, mentor, and colleague, Harry Lewis's 70th birthday, I give you:

 Harry Hatches CS.

Sighed Martin, the Spartan Dean of D-A-S
I'm stymied and I'm bored; what is this C-S?
Is it math? Engineering? Neither or both?
It's something quite different I swear under oath
Let me create some new courses said Harry
Theory of computation won't be scary

It's mathy and logical just right for me
I'll make some new courses and teach them you see
Then Harry, the young guy, started creation
He called the course, theory of computation
Then AS eleven started migration

To the course known today as CS fifty
You didn't know that? It's really quite nifty.
Algorithms next, called AM one nineteen
Now it's one twenty four, you know what I mean

Before a CS concentration was made
In many areas the students played
Some did AM, while others studied Eng Sci
But eventually the right thing did fly
Computer science became a field of study
Intrepidly led by Harry our buddy

A concentration must have a head tutor
The chief advisor and main troubleshooter
Harry quite naturally stepped into this role
Dedicated to students in heart and soul

And as CS grew, Harry knew what to do
After careful analytical review,

Come Henry and Stuart, Margo and Michael
Salil and David continue the cycle
Then Sasha joined to make the number seven
Only four more and we'll be at eleven!

With computer science now growing and blazing
Harry did something even more amazing
The Dean of Harvard College, Harry was named
Still teaching his course, he became quite acclaimed

House randomization came as no surprise
His report of the college did so advise
Random numbers play a key role in CS
So should they too for our students' address

Harry decreased` the size of blocking groups too
From sixteen to eight, I'm afraid that it's true
But during his Dean's tenure, there was no doubt
His devotion was to students throughout
Perhaps lesser known is how much all admired
Dean Lewis whose efforts were always inspired

After eight years of Deaning in faithfulness
He returned to his home in good old CS
The job of head tutor became the nutty
Director of undergraduate study
Assuming this title in style of no peer
Advising more students than days in a year
He leads by example; he shows us the way
To care for our students in the proper way

Perhaps his service to Fair Harvard was through?
Oh no, oh no, there was still more he could do
With Cherry departing and no Dean starting
Harry did what he could before departing
He became the Interim Dean of our school
Fairness and respect to all was his ground rule

He's had so many jobs, so many titles,
We could go on and on with our recitals
Instead, we'll mention just a few titles more
Because they allude to what might be in store

He's a father, grandfather, father-in-law
To us he's much more, given what he oversaw
He's a teacher, advisor, mentor and friend
None better on your side could we recommend

As the clock on two years begins winding down
Here is how to avoid our collective frown
Go forth and have fun teaching CS classics
With your wit, charm, and happy dynamics
Back to Montana for the best fall around
But come back to Cambridge where colleagues are found
We wish you the best and Happy Birthday too
With our love, respect, and gratitude. Thank you!

Monday, October 12, 2015

Weeks 4 & 5: Joy

You can tell that I'm struggling more keeping up with this class than with CS161, when I flipped that -- I have not been able to blog regularly, because I spend pretty much every waking moment working on the course (or frantically doing the other administrivia required of faculty and every once in awhile I get to talk to my students and pretend to do research and file NSF reports). You might be tempted to assume that it's the scale of the course that is making this more difficult, but it turns out that that is not the case. This course is taking so much more time, because it's a course I've never taught before When I flipped CS161, I'd taught the course many, many times over the past 20 years; I knew the material; I knew what was difficult; I had lecture notes. In that case, my efforts in flipping turned into recording audio tracks for slides that already existed and designing in-class exercises. In contrast, this year, I'm developing the notes from which to record the pre-class videos and the in-class exercises and the pre- and post-class surveys. Thankfully, I am not preparing new problem sets, because I have inherited a terrific collection of problem sets from previous years. (We're designing one new assignment.) Also, I am extraordinarily grateful to the folks who've taught the course before me -- from one I have an amazing collection of slides -- while I don't copy them, they provide an excellent source of inspiration and data from which to design my own. From the other, I have inherited a huge array of programs that can be turned into the right in-class exercises. Without these two sources, I do not think I could do this in real time -- that is, I could not keep up with the pace of the class. I think this is a HUGE point, so I want to summarize the different ways one might be tempted to flip a class:
  • Flip a class that you've already been teaching: This is definitely doable and rewarding. You probably already know the patter that you have with every slide in your slide deck and recording will take time, but it won't panic you. You will learn just how sloppy you can become while lecturing and will spend time trying to become more precise in your patter. You may also spend time breaking long lectures down into smaller, bite-sized topics. And you will also spend a lot of time developing in-class exercises. For programming courses, this requires both intellectual investment as well as programming, debugging, clarifying, etc.
  • Flip a class that you've not taught but for which you can inherit a lot of material: This is also doable and rewarding, but requires an enormous amount of effort. I suppose that if you are comfortable lecturing off someone else's slides (or in this case preparing videos off of someone else's slides), then you can reduce the work. But, it takes a lot of time to figure out exactly what exercises in class connect the videos to the problem sets.
  • Designing a new class from scratch: I personally could not do this in real time. That is, I would need at least half the course completely done before the semester started. Your mileage may vary, but I find it intellectually challenging (albeit rewarding) to coherently design videos, pre-class surveys, in-class activities, and problem sets. Coherence is really the key. If the in-class exercises do not connect (especially to the problem sets), students quickly become frustrated and lose interest.
Lest you think this experience has turned me off flipping, that's definitely not the case. I still love it and remain convinced that it's the more effective way to teach certain subjects (programming and systems for sure). I've gone into numerous reasons before, but perhaps the most compelling one is the one I just noticed last week: the joy that I see in my students when they are working in class. They are actually happy! They are having fun. When one lectures (at least when I lecture), there may be a few students who look at least mildly interested, but there aren't a lot who look genuinely happy. As I and the staff wander about the room, talking with students, answering questions, pushing them to dig in, everyone, both students and staff, look genuinely happy!

I come away from class both invigorated and exhausted -- it's hard work. You want every student to have a positive experience, and you have a real way of observing very directly if they are. When things go wrong, it's rough. We had one unfortunate incident this week where I didn't fully think through the ramifications of exactly how I had asked students to do an exercise. The end result was that their Makefiles were spitting out errors that confused them. The fact that the Makefile errors were irrelevant; they were distracting to the learning we wanted to happen. Little things matter, and making everything that is not directly relevant to the learning, is a detraction (except candy). It's important to remember that and make every experience as seamless as possible. The only silver lining is that since the college students finish several hours before the extension students have their web conferences, we can fix things for extension. That's critical as the technology and distance pose a sufficient hurdle that technical difficulties with something as mundane as a Makefile would be a real demoralizer. So, what' coming up next? Assignment 3 (adding a cache to a simple, unbuffered standard IO library) is due and then we have a midterm! That's always stress inducing on the students -- but it's also a good indicator for us about whether we are successfully teaching the students what we think they should be learning! Until next time.

Thursday, September 24, 2015

Week 3: Gulping water ...

If I thought I was barely making it last week, this week is even worse in terms of material preparation. And my attempt at weekly updates is lacking.

That said, it seems that the course is running well. The students seem happy and engaged in class; they did very well on Assignment 1 (due this past Friday). My TFs continue to dazzle and amaze me. The extension students are working hard and doing well too.

Sometimes technology is just amazing: I had a quick trip to California last week (my niece got married Friday in San Diego), but I managed to Skype in to kick class off, which was kind of cool. Then I skyped in for staff meeting and that worked OK as well. And, because extension office hours are remote anyway, I was able to do those as well. And thanks to airplane wifi, I spent the flight home fighting with our grading server and getting the next assignment ready to go.

The biggest challenge we're facing this week is providing a good experience for our extension students. These students fall into a couple of categories:

  • Local students who come to classes -- these folks seem to be doing quite well.
  • Local students who cannot come to classes -- we're doing "OK" by these folks -- our schedule is such that these are at convenient times, so they can tune in for web conferences, sections, and office hours. That said, and as I'll discuss below, the web conferences are not as effective as we might like.
  • Remote students who are in timezones that make the sessions we schedule feasible (i.e., US) -- these folks are in a situation similar to the local students who cannot come to classes, but the timing isn't quite as good.
  • Remote students in Europe, Africa, Asia -- what we've scheduled simply doesn't work for these folks. I hold morning office hours on the weekend, hoping to be available for them and we've now added some additional teaching fellow office hours for them too, but the sections and web conferences will never be convenient for them. The real-time interactive nature of the pedagogy in this course makes this a real challenge, so we'll talk about that next.

Let me talk about the different parts of a flipped course and how I see them fitting together.

  • Pre-class videos are for first presentation of information -- they cover material similar to what can be found in a text, but are more biased towards precisely the concepts that I think are important -- both in general and for the problem sets. Additionally, I've been able to incorporate a more dynamic experience than a text through audio-annotated screen captures and scribbling on slides, drawing pictures, highlighting things, etc.
  • Pre-class web work is a high level check that the students have gotten the key concepts. They are not intended to be challenging, but they highlight to me areas where students have confusion so we can discuss them at the beginning of classes.
  • Classes let me address confusion in the pre-class work but are largely designed for small-group work. The key here is that these exercises connect the concepts in the pre-class work to the problem sets in a way that is supposed to help students know how to tackle assignments. My sense is that this is working well for the students who are present in class, but not well for the students trying to have this experience via web conference.
So, our current challenge is figuring out how to provide the best experience we can for the remote students. We're going to try a slightly different version of the web conferences, walking students through the in-class exercises rather than having them work individually in small break out groups. While the technology supports these small breakout groups, it's difficult to know where you (an instructor) should be at any time. You can spend all your time hopping room to room trying to figure out which group could most benefit from your presence. Additionally, the students are at vastly different levels and degrees of preparation and that makes for challenging group work. I am still convinced that while students can work alone through the exercises, they get so much more from having someone else at a comparable level with whom they can puzzle things out, bounce ideas back and forth, and share "aha" moments. Trying to produce that via a distance experience is challenging.

I'm going to get this posted now and will try to write more this weekend.

Monday, September 14, 2015

Week 2 -- Barely Keeping my Head Above Water

Here we are Monday of week 3 and I haven't blogged last week. That should give you some indication of how things are going -- busy, busy, busy. However, most of the business is due to logistical setup -- getting everyone accounts on our custom grading server -- and getting the students through their first "submission" (a check-in on assignment one which is really due next week).

So, how are things going?

I'd say they are going well. We've dealt with some of the issues surrounding our new classroom:

  • I tried writing on a small whiteboard for the first class -- it was totally invisible to the back of the room. So now I bring my tablet (my nifty new surface), hook it up to the projection system, fire up Bluebeam (a terrific PDF editor), and use that to scribble.
  • Running one handheld microphone among 132 students (that's the registration number for the college; it will change a bit over the next few weeks) doesn't work. I've gotten the OK to buy 4-5 more microphones, which should solve the problem.
  • Everyone likes it so much, they want to use it other times! We've gotten OK to hold office hours there after class -- that's pretty cool (and exactly what I predicted).

So what were the big issues this week?


As I've not done this class before nor has it ever been flipped, I really don't have a good sense of how much material the students will get through in a class. I've designed the first few days' exercises so that if we didn't finish them, it would be OK, but students still stress if A) they don't finish everything and B) they feel as if others are doing "better" because they got through more. I'm working to produce exercises everyone can get through, but it's quite challenging. I've taken to writing up "answers" after the fact so that students who didn't finished can go back and check what they missed. Of course, that takes time away from preparing the pre-class videos and in-class exercises. I spent almost all my waking moments on the course (when I'm not producing NIH formatted biosketches): preparing slides, recording audio/video/screen capture, designing in-class exercises, designing pre-class surveys, creating accounts on various servers, reading Piazza, answering Piazza, replying to email, holding web conferences. I'd forgotten what it means to do a large course (132 Harvard College plus 60 Harvard Extension). If you don't hear from me this semester, you'll know why!

Web Conferencing

Well, we did our first web conference for the extension students. The good news is that it feels very similar to what goes on in class -- some of the small groups work well; some have slightly bigger discrepancies in skill set, but the same interactions and questions seem to come up. The bad news is that working these "rooms" is really challenging. Two of us did the first one and I was completely exhausted afterwards. There is just a lot to keep track of (it's especially problematic if people have poor connectivity -- they keep popping out of their breakout rooms and you have to manually put them back). That said, we had about half the class show up (the timing is bad for those in Europe and Asia).

I've also been using the web conference for office hours and I like that a great deal. (We're using Adobe Connect.) I can "hang out" in the room and students show up and I can talk with them; if they need privacy we can jump into a breakout room, otherwise, everyone gets to benefit from each other's questions. So far, so good.

Post-Class Statistics

After every class, we ask for a bit of feedback about how useful the class and exercises were. It seems that most people find them pretty handy (I wonder if this would change if we stopped asking for email address -- I think I'll try that)? Only a handful (2-3) people hate working with their peers and felt that the exercises didn't help them. In general, 80% and above find them useful and/or enjoyable. I'm pretty good with that.

A Picture

I got a request for a photo of the new space!

Find all posts about flipping this course here.

Wednesday, September 2, 2015

At it again ....

About three years ago I did a series of posts reporting on my experience flipping my operating systems class. Well, I'm baaaaack.

Whereas the big challenge I experienced last time was avoiding overloading the students with pre-class preparation while they were in the midst of implementing large, complex, challenging assignments, this time the key challenge is scale. CS61 is one of our introductory courses and has been running about 150 students. And, just in case that didn't pose enough of a challenge, it's also been part of the certificate program offered through the extension school -- so I have students flung around the globe taking this same class I'm trying to flip. Well, I do hope you'll join me on this adventure. As I did before, I will try very hard to write weekly posts, revealing the good, the bad, and the ugly -- all in the service of education science!

Let me launch the series with a little bit of what's been happening behind the scenes.

Hiring Staff

Having taught large introductory courses before, I knew that I was going to have to start early recruiting teaching fellows (TFs) (teaching assistants in other schools). I got started a bit later than I intended, but I did manage to advertise for TFs and interview people last spring. There were, however, a few obstacles.

  1. Most of our students have never taken a flipped class, so while I can tell them all about it and point them to my blog, they don't really know what they are getting into. Maybe this is good.
  2. Now that CS50 is the largest course in the college, a very large number of our undergraduates (who often make outstanding teaching fellows for introductory courses) are already involved in CS50.
  3. I did not realize how much attrition there would be over the summer. This is perhaps fodder for another post, but I have had more students this summer consider taking a year off to join a startup than ever before.
  4. I didn't realize that I could have hired a teaching fellow for the entire spring semester to help me prepare. That would have been amazingly helpful.

Enough whining -- I am happy to report that I have assembled an awesome collection of teaching fellows. They are sharp, enthusiastic, and best of all, they seem to have bought into my vision of the course and the idea that we're going to support our students in learning a bunch of really cool stuff!


It might not be the final frontier, but where the heck do you flip a class of 150 students? The beautiful classroom we have that is used for flipping holds about 60 officially and perhaps 75 in a pinch. That's way shy of 150.

I had my eyes on a large open space in the basement of one of our newish buildings (amusingly, this is called the Northwest building and while it is, in fact, north of most of campus, it's actually not west of much). The space was officially event space, but it looked just about the right size to fill with tables and white boards and hold a humungous flipped classroom.

It took the better part of the summer, but I am pleased to report that pedagogy won out and I was given the space, the school purchased new furniture, and they replaced doors on the adjacent rooms to help with soundproofing. In fact, everyone was terrific about making this happen. It took while to all come together though, and so I put off preparing materials until I knew that this fantasy of mine was going to come to fruition. That made for a rather hectic end of August and will make for a pretty frantic semester, but c'est la vie.


In my OS course, I kept things very low tech: audio annotated powerpoint. I recorded individual slide clips using Audacity, converted to video using moyea and then made the videos smaller using handbrake. It was a bit of a nuisance, because Moyea only runs on Windows and I do everything else on my Mac. In February, I was in a Microsoft store and saw Office Mix -- a way to incorporate Q&A, screen shot, recording, etc into a nice powerpoint video. I thought this would be the ideal tool to prepare my video clips, so I wanted to test it. Alas, it doesn't run on Mac. It also doesn't run on my ThinkPad Tablet II. So I contacted IT to see if I could borrow a machine (for just a few hours) to give the thing a run before buying a machine. After multiple weeks of being told "any day now" I was informed that they could get me a machine one week before classes started. I freaked. I ordered a Surface 3.

I am happy to report that it was worth it. I really like the capabilities that Mix provides. There are, however, a few things that I would love to see fixed:

  1. If you want the interactive Q&A, you have to run it on Microsoft's servers. Sad. I want to host everything locally.
  2. If I want identified per-student data on the questions, I have to have students create Microsoft accounts. I'm not excited about requiring that.
  3. You can really only fit one question on a slide -- I'd really like a more compact presentation so I could have a list of questions on a slide.
  4. I would love some global operators (make all my audio clips start automatically).

After bugging my teaching fellows and trying all sorts of different ways of presenting material, I decided that I would embed some Q&A in the videos, but not the "pre-class work" that I keep track of as part of participation. Instead, I would continue to use google forms for that (even though the Mix analytics are much better). In this way, I can host the videos on the MS servers, but do not need to require a login. If you're interested in the technology, you can check it out here. (Select any of the pre-class videos.)

Extension School

Here's the real conundrum: how do you teach a flipped class via distance learning? The students are used to watching videos of live lecture and then having sections, but recording a live flipped classroom doesn't actually make all that much sense now does it?

Fortunately, my colleague, Harry Lewis, has been offering his flipped class via extension. One of our former graduates has been his teaching assistant and is regarded as the guru of flipped distance ed. So, I lured her over to the house one weekend (since I still couldn't drive; see previous blog series on total hip replacement) to talk flipping and eat homemade biscotti. She assured me that you could run good interactive sessions using the extension school's web conferencing software. So, that's what we're doing.

We will try to record some of the class time and make it available, but the extension students can tune in for a live, instructor guided, web conference to go through the in-class exercises. We will have live streaming of section, but I'm not going to require attendance there, since I think the web conferences will be more important and I didn't want to ask them to do three days per week. We'll have to see how this all works out.

Off and Running

Other than the hours I've spent watching last year's lectures, making pre-class materials, developing in-class exercises, and figuring out the infrastructure that the previous instructor developed, that's about it! Tomorrow is our first class -- our goal: make sure students understand what they are getting themselves into!

Until next week!

Find all posts about flipping this course here.

Thursday, August 20, 2015

Week 6: Mobile at last!

I have been officially discharged from home PT, and I got the "all clear" from my surgeon (or more precisely, his PA). That means I can pretty much do anything I want except run (and by extension, I'm going to include soccer in that). And I can now legally drive again! That was very exciting (of course, the day after I was allowed to start driving, our family found ourselves with another licensed driver, but that's definitely material for a different post!). The next major milestone will be 6 months post-op when I see the surgeon and we discuss "the future" (what I can and cannot reasonably do). The X-ray was pretty cool -- the part looks great (so much better than a normal hip). I will continue with PT to rebuild muscle, which I think is really addressing the year and a half I spent in pain and limping more than any post-surgical residue. So, 6 weeks post op, status is:
  • I can walk 4+ miles at a 16 minute pace.
  • I can (finally) work hard enough on the elliptical to get a heart rate up to 75-80% of max (which for me is way higher than any of the charts say). It feels good to be able to work up a real sweat (exercising as opposed to hot flashing).
  • Range of motion is quite close to normal.
  • Every once in a while I can tell that the abductor isn't 100% there on the right.
  • My walking posture is almost normal (I have to concentrate on walking straight, but this is left over from the pre-surgical mess I was).
  • Quad is still a tad weak (only noticeable if I'm thinking about it going upstairs), but we're getting there.
Overall, I am thrilled -- so much happier than pre-surgery.

Tuesday, August 11, 2015

Week 5: Definitely wrapping up here

I take it as a good sign that there is less to report each week. Again, changes happen, but are not as dramatic. So, this week's milestones were:
  • Wednesday: went for a walk in the woods. I wasn't up to climbing over felled trees (we had a hailstorm on Tuesday), but I was fine with the uneven ground and carried my cane, but didn't use it.
  • Thursday: So, based upon the walk in the woods, I shed the cane!
  • Friday: I hit the 3-mile mark on my walk.
  • Saturday: I hit 13,000 steps.
  • Monday: I upped my pace from Friday's 19 min/mile to 18 min/mile.
Tomorrow is my Xray and post-op appointment and next week's post will be my last!