Category Archives: Teaching

Inspiring Students



by Richard White

Earlier in my teaching career I worked at a high school that had a depressingly low rate of its graduates going on to college. It’s the desire of every teacher to encourage students to continue their learning, and while that doesn’t necessarily mean college for everyone, for most people it should. Encouraging my students to apply themselves and to strive for something big was a noble challenge, and an exhausting one.

At my current school, I have the benefit of getting to work with a different population, and one that is almost always appreciative of the advantages that they’ve been afforded in life. In addition to taking full advantage of the opportunities they’ve been given, some of them push even farther, and in so doing, inspire me to be better myself.


A couple of days ago, I received this email out of the blue from a student who’d graduated last year:

Hi Mr. White!

In my CS106A lecture right now, and we’re learning about passwords. Reminded me of that one time you spent physics class telling us to back up our hard drives and how to make passwords :) hope everything’s going well at Poly!

The next thing I did, of course, was search for the website for Stanford’s CS106A course to see how what they were doing compared to what I do in my own CS courses, and three hours later, I’ve got some new ideas to consider for how I run things next year.

It wasn’t this student’s intention to provide me with an opportunity to reflect on what I’m doing—she’d just wanted to say hi, and I appreciated that and responded in kind. But it was the perfect excuse for me to see what my former students are moving on to, and to reflect on how I might better prepare them for what awaits after they leave my care.

Another example: a current student has been working with me for a couple of years now, and after enrolling in his second computer science course in as many years, he approached me about the possibility of helping him with an idea he had for a Python program that would:

  1. allow him to enter the title of a song
  2. search YouTube for a recording of that song
  3. automatically download that song to his computer

There is certainly the possibility of making something like this happen, but it’s a bit beyond his (and my) skill set at this point. I couldn’t help him with this particular project… but I could prepare a couple of smaller programs that might provide some first steps along that path. I spent an hour or so setting up a Python program that would automatically send an email to someone from his Gmail account, and another one that checks a NOAA webpage to identify the current temperature, and then reports that temperature back to whomever is running the program.

These are relatively small programs, but for a new programmer, they’re the first step in writing code that interacts with the world outside his/her own machine. And thanks to this student’s request, I’m considering including a small project on this very thing as part of my own Introductory Computer Science course.

Teaching at my current school is a refreshing change from the days when I had to lead my students through classes that they had difficulty appreciating. Now, it’s often my own students, current and former, leading me in my ongoing goal of becoming a better teacher.

I’m lucky to be able to work with these young men and women.

The Best and the Worst of Online Learning


by Richard White



A few months ago I signed up to take my fourth Massive Open Online Course (MOOC). We’ve discussed MOOCs here before, but it’s been awhile since I’d taken one, so perhaps it’s time for an update.

My track record with regard to these MOOCs is better than that of most people. The first one I took, a Python-based course on Building a Search Engine offered by Udacity, was far and away the best one I took. The whole MOOC craze hadn’t really started yet, and so it was clear that the instructors wanted to get this right, and that fact showed in the time and care they took in developing both the curriculum and the materials used to support the course. I followed the course, completed assignments as required, and earned a “certificate of completion” at the end of it all. Based on my experiences with that single course, I became a true believer in the concept of MOOCs.

I signed up for a couple of other classes over the course of the next couple of years, but didn’t complete either one. Udacity’s follow-up CS212 course, Programming Principles, taught by Peter Norvig, was poorly organized and poorly delivered, a disappointment all the more striking on the heels of the first course. Based on comments left on the course Discussion Board, students abandoned the course in droves. (Here’s an online review from a student as well.) I left my own comments on the Udacity Discussion Board:

…One of the important tenets of education is the idea of giving as student a problem that is just beyond their current level of understanding, along with the tools he or she needs to make that next step. In CS212, in the first unit, just about every quiz solution reveals a strategy or technique that had never been broached in the discussion to that point.

Yes, I understand that “the real world” requires one to do independent research as required. This is not “the real world”–this is an educational course that is intended to guide me in discovering the tools that I can use to solve problems. CS212, in that regard, has been a bit of a disappointment.

The third course I took was again offered by Udacity, this time a Java-based Intro to Programming course that I quite liked. It had the benefit of being taught by the author of the textbook I use for the AP Computer Science course I teach, and it was entertaining for me to hear his audio- and video-recorded development of topics that I would be teaching myself. I didn’t complete this course because I got busy prepping for school, and that seems to be a common malady when it comes to MOOCs. Without the structure offered by a regularly-timed class, there is an enormous attrition rate.

Just a few days ago, I completed the second of the four MOOCs I’ve taken, this one an Introduction to Linux offered by edX. I finished the course–a PDF certifying that fact is being readied as we speak!–but I can’t say it was a pleasant experience.

Here’s the thing. Learning is hard, and teaching is even harder. You’ve got to help students develop a coherent picture of the content and process that you’re presenting, typically with explanatory comments to help them understand why something is the way it is.

Here’s the type of video I got in this most recent course.

This is not teaching.

I survived the course only because a) I already knew most of the material in it, and b) the “final exam” consisted of 30 Multiple Choice questions, open notes and open coursework, with two tries allowed for each question and a pass-fail cutoff at 70%.

MOOCs aren’t going to go away. With a lot of planning and forethought, it’s possible to do them well. It’s also extraordinarily easy to mess this up, and it’s going to take some time for things to settle out. There are lots of challenges to be solved. How to reliably deliver good content? How to accurately gauge students’ progress? How to certify completion/mastery?

We’e seen some interesting forays into this new area of learning, and we’ve seen the ensuing land-grab by various corporations and higher-ed institutions, and the backlash that resulted from trying too much, too soon. We’ll see within a few years what we’ve decided to make of all this.

In the meantime, feel free to try out a MOOC and see how it feels. If at all possible, see if you can determine in advance how well a given course works. may be one place to start.

Good luck… and I’ll see you online.

Whither Data?: Dude, where’d my content go?

Whither Data?: Dude, where’d my content go?

by Richard White


Part II in our series.

In a previous post, Whither Media?, we explored the ongoing transition away from physical media, and what implications this transition might have. The related question is Whither Data?: What happens when your content—your written documents, photos, email, music, etc.—are all stored on somebody else’s computer?

The Cloud is a term that has a number of definitions, but typically it refers to a collection of servers run by a company that (usually) offers a user access via Internet to that data and those services. In addition to offering Internet access, a cloud-based service typically implies multiple servers hosting redundant copies of the data, providing faster access to the user and backups of a user’s data.

If you use Google’s Gmail, your email is stored on their servers, “in the cloud.” If you use Google Docs, your documents are stored on servers, “in the cloud.” Microsoft’s Office 365 stores your Word, Excel, and PowerPoint documents “in the cloud.” And although you may not think of it this way, many social networking sites such as Facebook also provide content and services “in the cloud” so that your conversations, photos, status announcement, comments, and Likes are store where you and others can view them.

There are a number of powerful advantages to using cloud-based services, and most of these are self-evident, especially to teachers. At my school, which provides Google Apps for Education (GAFE) to teachers and students, we’ve been able to offload our email services to Gmail and provide Google Docs and Calendars to the entire community, allowing for teaching strategies and communication workflows that simply weren’t possible before. Content Management Systems (CMS) and their educational offspring Learning Management Systems (LMS) provide a structure—usually a proprietary one—in which a teachers information can be delivered and a students interactions with that information can be tracked.

I love the fact that the ability to share data from user to user and machine to machine has become easier. Without cloud services, teachers would be forced to a) try manage an endless and non-linear flow of emailed attachments (something some of us still do, I’m sorry to say), or b) implement and manage our own servers to which students can upload documents, and from which they can download them. (Actually, I do do this, but it’s in the context of a computer science course in which those processes are part of the curriculum). Cloud services allow for shared files, shared folders, and drag-and-drop functionality that “just works” (most of the time).

There are two caveats here, however. The first concern is security. Unless students are encrypting their documents before uploading them, there’s the possibility that the information in those documents—perhaps confidential, private information—may be visible to others, either in transit or on those servers. The reality for most teachers, I think, is that the documents that students are sharing with us—book reports, essays, lab reports, homework assignments—don’t require a high degree of security, and so maybe this is just fine. If you were having students email Word documents to you before, having them work on a GoogleDoc on Google’s servers is at least as secure, and almost certainly more unless they’ve elected to make the document’s contents available publicly.

I am not a doctor or lawyer and am not aware of the specific legal requirements concerning the secure storage of patient or client information, but I would investigate that carefully before using cloud services for these purposes.

Perhaps a more significant concern for teachers and students, however, is retaining access to cloud-based content over the long term. Low-priority content like quizzes or in-class essays may not be of much concern to students, but more significant essays, research papers, or portfolio work has a higher value, and may even be submitted to colleges as part of an application. Ideally, a student would be able to retain access to their work—and it is their work, isn’t it?!—for some indeterminate time into the future. Which cloud-based services allow for that?

The notorious offenders here are the providers of online books—where online notes and marginalia disappear when your one-year access license expires—and the various Content Management and Learning Management Systems, with password-protected access that may not extend beyond the current year. Students who create or store documents in these systems are at high risk of losing access to them when the end of the school year comes around, or the next school year starts begins (depending, of course, on the administration of the system).

The same may happen with Google Apps For Education, although it is much easier to export this data onto a student’s own computer or data storage device, assuming he or she has access to something more than a Chromebook. Here, a personal Google account may come in handy, although questions about privacy of these documents may be relevant.


I don’t think we’ve yet reached the point where lost access to data is a broad concern, although some are wrestling with this issue already (as mentioned previously here. 34:20 in show). As we ask that are students create more and more of their work in a digital form, however, it’s fair that we keep these questions in mind: ‘Should students have access to the data that they’re submitting to me?’ and ‘How do I go about facilitating that access?’

Daniel’s Search Hack


by Richard White



On one of the last days of the AP Computer Science class, I met with a few students who had been participating in the High School Capture the Flag hacking contest. A high school in New Jersey had created a competition that would allow teams of high school students using digital tools to solve various types of puzzles.

One of the problems involved a text file with just two lines in it. The first line explaining that students would need to search the file for a series of English words in sequence, although those words wouldn’t be separated by spaces. The second line consisted of over 10 million letters, mostly scrambled, but with words occasionally found within them.

Here are 200 letters from that file:


You can see the word “hiss” in there, as well as “rips”, “fee”, “call”, “has”, as well as a number of 1- and 2-letter words, but clearly nothing identifiable as a sequential series of words.

So how do you go about looking those needles in that haystack?

I had some ideas, and I’d been working on the problem for a day or two. I wrote a Python program to read all 10 million characters into a string so that I could search through it. I Googled and found a couple of lists of English words, arranged in order of popularity, and inserted those into my program as a list of words.

But now what? How do you start trying to find a sequence of words in a line of ten million letters?

My first algorithm looked liked this:

  1. Get a word (call if word1) from the word list, and another word (word2) from the word list.
  2. Look in the text for an occurrence of the first word.
  3. If you find that word, look to see if the second word is near it. It it is print it out. If not…
  4. Keep looking for additional occurrences of the first word and the second word, until you can’t find anymore.
  5. Get a different word2 from the list and check that against word1.
  6. Repeat this until you’ve tried ever word in the list as word2.
  7. Set word1 to the next word in the list and repeat the whole process.

It didn’t work. It was a first attempt at trying to work through the file, and this particular strategy was much too slow—my search was going nowhere fast.

Time to alter the strategy.

My second try concentrated on reducing the number of text interactions that had to take place. This time, I would:

  1. Take the first word in the word list identify all the locations (indexes) where that word existed in the string.
  2. Do this again with every word in the word list until I had a “dictionary” of word locations.
  3. Now start at the first word, and look at its first location. Go through the other words and their locations, and if a second word was found withing 10 characters of this one…
  4. Look for a third word with a location with 10 characters of this one…
  5. … and then a fourth word. If I could find four words all within 30 characters or so, perhaps this would identify the flag phrase.

Here’s what the results look like for that strategy:

It didn’t work. I mean, the program worked fine, producing a seemingly endless string of lines that matched the specifications I had, but none of the lines produced were what I was looking for. Here’s the partial output from that second algorithm.


I still was getting “words” in each of those lines that didn’t correspond to the flag I was searching for. This was starting to get frustrating.

I went into class the next day and explained to the students my frustrations, and they were happy to brainstorm different strategies. At one point, Daniel said, “Why don’t you just look through each line in the file and count the number of words in it? Maybe the line with the most words will be the one we’re looking for.”

“That’s a good idea, Daniel, but the file isn’t split up into lines. It’s just one long line of characters.”

He thought about it for a minute, and his partner Ezra said, “Well, let’s just split it up into lines. 140 character lines. That’s good enough for Twitter.”

So that’s what we did. The students have been studying Java for this past year and I was coding in Python, so they watched while I coded their strategy:

    for line in lines:
    num_of_words = 0
        for word in searchTerms:            
            if line.find(word) != -1:          
                num_of_words += 1
                if num_of_words > 25:
                    print num_of_words, line

Because it was a relatively simple strategy, the two decided that they could afford to search for any words contained in 10,000-word dictionary. We watched as the results appeared on the screen:

Last login: Sat May 24 18:03:42 on ttys002
MotteRouge:~ rwhite$ /var/folders/6x/vklj_pls5215szrp_k2qcjcc0000gn/T/Cleanup\ At\ Startup/ ; exit;
File has been split into lines! Proceeding…

26 netenivgdyblduenehttihaaoshasnoadhigdateilnoteanabinmstaruceoarasuleedpnhtgeoendtgedeeincodolropthei
26 deeeeepraosderwfsrerepimnsinaosutttnoeytvrvtheterthistollagtitnhsminewitcecnlrsbgeoeddiorwadanartell
27 chaoomelohdanamtgswsbtroddtapmcfhlewasalnewasisscelapostnecstotvstviiiederectunoauwjleeddicbsigesnem
27 ailmavbfngdfawdigcrseentatoueiefrdrnorfkersrutccamemdireaeiedsleoauieiaitmlsitemhiapropenhbutworfson
27 tnatrsirvsprosaeseebatoniwrtaptranuinetdsyraheroenattphweelilnhopedelrudolbiaimoioiaahlttonesoucoduy
26 thahksvrtetentnaanyosmyclekrmrnotestadrtslonuisnproncedpesaehietidethereheionmcbalasaeriantrsrheteeh
26 odicelerussltltmerehsoaeebaotruettanarfdereunecgtsnsnatllasteakitnngodrsuseerthdfaisirnswaudcsvwhvie
27 akyoeaaptebheaeasetrrsdairnslegstensnhhtirepysuxxthseelesnetfdaniknsethaiarsoslutsperaegotedibnnlids
27 hidsrdaedoiltdetoeiepdscencairdstheeovrncwaaihstnthtnebemochthestyaahiseperateanhistseaoneeyntareade
26 edlotetwlettdtstfdnseovnrpamatelfroltsmahliassseaueeeamihnhgavepaadatrglettanitoleeenlredramdhoyaddt
30 latecwhoodehderowtaesitfeflantenvweosrehonsethlaerateeeersiosrlesuaidpeutdineacetzrthrchbhrideeafsat
26 tvanodeaosomidhonatnusidispithscvhsnhsoilesacciraeenycielaehoallooldamwrneirwcfamotntrdataoeenogleeb
33 ntevnaaureakltyashtbosutheselettersrepresenttheclothmarkerthatunlocksrewardsehegcceremuahwtmknnflswa
29 bandosytrctanoyearenonajrnpasrlgaohisnhunetnsielistdoecdpeehenaasshecisiojersydataelpsheeulhesvfonli
28 nargelrhendedtoidlteauuvtihsursaioptehetclbnigeauhoneystolheatbsantrwmsctipsslagedsehieahsadoacscihn

And there it is, on the line with 33 matches, just a few moments after starting the program running:

these letters represent the cloth marker that unlocks rewards

We submitted the flag to the contest and saw out score total immediately jump up 400 points—it was our single biggest success of the competition to that point.

I like this story because it reminds me of a few things that we sometimes forget. Working on digital problems like this is not always about coding— sometimes it’s about strategies. Also, there are trade-offs in strategies that require considering constraints: how much memory, power, time, and data do you have? How do your solution results vary based on the trade-offs you make?

Computer Science teachers talk about these things, but I’m always pleased to see a situation where the students get to actually experience that exploratory process themselves.

Thanks to Daniel, Ezra, Adam, and Stephanie for being willing to play with this problem on the last day of school!

Computer Science in Schools

Computer Science in Schools

by Richard White


Happy Holidays everybody!

The holidays are no time to get any rest. Oh, no, there’s too much going on–parties, holiday shopping, out-of-town visitors–to actually get any down time. No, to actually get a chance to relax, you have to resort to more drastic measures… like getting sick.

That’s my genius plan, and it’s working just great.

While I’m sitting around waiting for my body’s defense mechanisms to do their thing, I’ll just include a quick year-end pointer here to one of Audrey Watters’s year-end Trend posts, this one on Computer Science in schools:

Despite the proliferation of these learn-to-code efforts, computer science is still not taught in the vast majority of K–12 schools, making home, college, after-school programs, and/or libraries places where students are more likely to be first exposed to the field.

There are many barriers to expanding CS education, least of which is that the curriculum is already pretty damn full. If we add more computer science, do we cut something else out? Or is CS simply another elective? To address this particular issue, the state of Washington did pass a bill this year that makes CS classes count as a math or science requirement towards high school graduation. Should computer science – specifically computer science – be required to graduate? In a Google Hangout in February, President Obama said that that “made sense.” In the UK, computing became part of the national curriculum.

She has a bit more to say on the subject, but her thoughts echo many of my own. Does everyone really need to “Learn to Code”? How important is Computer Science in the midst of an already bulging academic curriculum? How can educators and the tech industry best reach out inclusively to students on behalf of an industry that is not only famously non-inclusive, but downright hostile to some demographics?

It’s a problem that merits discussion at all levels, and there are certainly institutional responses that might be pursued. As I expand my role as a computer science educator I may even become involved in some of those—that’s certainly my intention.

In the meantime, I consider myself on the ground doing the front-line work without which nothing else matters. “For this assignment, students, we’re going to…”

“Oh, cool…!”

If you’re not doing something cool with your computer science, well… what’s the point, really? ;)

Merry Christmas and Happy Holidays, everybody. See you in the New Year!

Hour of Code


by Richard White


You may have heard about the Hour of Code this past week, a 5-day educational technology event sponsored by that is meant to inspire future generations of computer scientists and computational thinkers: by spending just an hour working on a computer science related project—playing with a coding simulation, building a game, solving an algorithmic puzzle—students of any age level will have a better understanding of the topic of computer science, and perhaps be inspired to study it further, either in school or on their own. As a computer science teacher it had popped up onto my radar a few months ago, and it sounded like an intriguing idea so I proposed the idea to our school directors, who were immediately excited about the possibilities.

Fast forward two months, lots of meetings, some curriculum development, and a website, and I’m happy to report that Hour of Code was a rousing success at Poly. We decided early on to target fifth and seventh grades at the school, and I decided early on to create a curriculum—part coding, part computational thinking discussion—that would work with our students. It certainly helps that we had an entire Apple iMac computer lab that I was free to install a user-friendly text editor on.

As I write this, we’ve finished working with the two classes of fifth graders, who thoroughly enjoyed the experience. We talked, we coded, and they walked away with an official and personalized Certificate of Completion as well as a printout of their code and corresponding Python turtle-graphics art. (Little Marco enjoyed the experience so much that he was quite put out when the lab had to be vacated before he’d put the finishing touches on his masterpiece. I learned later that the first thing he did when he got home from school that day was to plop down in front of the computer and finish his program.)


Crucial to the success of the day was the support of a large number of people, including our division Ed Tech coordinators, our Director of IT, the teachers who gave us class time to work with their students, and three of my own Upper School students who came down to assist the younger students. We had teacher visitors from other schools in attendance as well, including a professor from Caltech’s Center for Advanced Computing Research. (I don’t think he was scouting our fifth graders for prospective students, but you never know…)

The participation of all these people was vital: advancing technology use in schools is not just about getting new hardware. As a gentle reminder of this fact, our seventh grade sessions—tentatively scheduled for this week—had to be postponed due to some scheduling conflicts. All is well, though, and we’ll be running a more sophisticated Hour of Code session—one that delves into recursion—with our seventh graders at the end of January.

For futher information about Poly’s Hour of Code, including code examples, the presentation slides, or a zipped file containing both, see Polytechnic Hour of Code.

Online Presentation Strategies


by Richard White


I blame it on the fact that I’m teaching a new course.

As I’m teaching AP Computer Science, and developing curriculum, assignments, and lessons for that class, and trying to figure out what works—and what doesn’t—there are lots of mid-course adjustments that I make. Not every assignment needs to be perfect, perhaps, but if I don’t get done addressing all the concerns in that one lesson, it’s hard to have very high expectations for the work that students will do that evening.

And in an AP course, time needs to be used wisely. I can’t afford to be expanding units when there’s a certain amount of material that must be covered by the end of the year.

Fortunately I’ve been able to leverage YouTube and GoToMeeting videoconferencing software to take up some of the slack while I get my act together. A 3-minute follow-up to a lesson, emailed to students, can help to proactively clear up a lot of confusion. Likewise, being available for online office hours, during which students can share their screens with me and we can debug their programs… that’s invaluable.

And although I’ve usually worked on the computer in the past, with a voiceover that describes what I’m doing, it’s often useful to “do a Khan” (as in Sal Khan, of Khan Academy), and just write some stuff out. I don’t have any evidence to back me up here, but my gut says that there’s an enormous cognitive benefit to developing things progressively, and by hand.

Here’s an example of a combination of drawing and computer analysis, done not for the AP Comp Sci class but in preparation for an Hour of Code unit that I’ll be using with some students. See what you think:

Do you see any advantage to demonstrating things in long form, as opposed to doing voiceovers with slides or computer displays?

More on the Hour of Code in a future post…

The Ed Tech Battle

The Ed Tech Battle

by Richard White


There’s been a lot going on lately in the world of educational technology.

I mean, okay–there always is–but this past week or so, there have been some really interesting items that have caught my attention. The general theme is simply this:

What we’re trying to do is really difficult.

Getting the hardware / software / lessons / workflow right is surprisingly tricky, and some of our best and brightest are struggling (and often unsuccessfully) to get it right.

My take away is that if these people are having trouble, it’s okay if I’m finding it a little frustrating, too.

In the news:

Kevin Marks talks about trying to manage Amazon textbooks on This Week in Google episode 217, (September 25, 2013)

At 34:20, Kevin starts talking about the challenges of dealing with / licensing differences for electronic textbooks, with corresponding separate Google accounts to manage those accounts. Even once he gets this solved, he’s still concerned that notes taken in the textbook for one country are stuck in one Amazon cloud, and inaccessible from another.

Summer Adventures of a Droid Tablet

A math/computer science teacher outlines in gruesome detail his efforts to get a new “recording his class lessons” workflow going after the untimely death of his laptop. Sample entry:

I would love to drop the USB Mic too if I could figure out how to use the Droid’s Mic with this configuration. I would then be truly wireless! This new incarnation of the Kindle has an 8.9″ HD screen, dual WiFi, dual speakers, dual cores as well as a webcam and mic. I think there’s a version of Teamviewer, called Teamviewer for Meetings, that uses VOIP so I wouldn’t need a separate Mic. IDK if it’s free or cheap. I suppose I could go back to using a wireless lapel mic? Maybe I could use a BlueTooth Headset Mic? You see, my lapel mic disappeared after Hurricane Sandy destroyed the Math Building at my High School….

I am also experimenting with other Remote Desktop Protocol (RDP) apps such as SplashTop. I’m using Splashtop2 for Droid and SplashtopStreamer for Windows.

I’m focusing on Teamviewer and Splashtop as these Desktop streamers are available for both Windows and Linux and the client app is available for Droid. I usually have to use Windows whenever I’m on the road, say at a conference. However, I usually use Linux all day every day at the High School. Further, all my tablets are now Droids!

How iPython notebook and Github have changed the way I teach Python

This article, referred to me by my friend Cindee, relates how one teacher, reflecting on frustrations encountered while teaching Python, eventually developed a technology-based workflow that allows him to give student better access to the materials covered in class. (More relevant to computer science classes than traditional subjects.)

Students in LAUSD “hack” their iPads

It’s a kerfuffle all the way ’round, and everybody’s got something critical to say about the situation, from the large scale of the roll-out to the money involved, from the choice of device to the sloppy execution. Everybody except perhaps Audrey Watter’s, who says this is what we should be teaching kids to do anyway.

And for me: Google Saves the Day?

My own frustrations are perhaps minor compared with some of these, and I’d like to think they won’t cost 1 billion dollars to solve (the projected cost of LAUSD’s iPad program). One of my recent discoveries: Google Docs and Presentations, used by many teachers and students, don’t have a notifications option that will inform a document’s shared users when that file is edited. Google Spreadsheets offers this option, but Docs and Presentations don’t.


So my genius plan for conducting an ongoing conversation with colleagues via one of those documents hit a bit of a snag, and while there is a workaround–we wouldn’t be education technologists without our workarounds, would we?!–it shows again that trying to find a solution to some of these things is sometimes / often / usually harder than we’d like it to be.

The reality is that I’m grateful for Google’s shared documents, which are increasingly a cornerstone of many teachers’ workflows. It’s good enough that I almost don’t mind them mining my data so that they can more efficiently sell me ads.


Hang in there, people. We’ll get this figured out one of these days soon… :)

The Intersection of Teaching, Learning, and Technology

At Laura Holmgren’s request, last spring I wrote what became the inaugural post at, a blog for the independent school community in which I work.

I’m fortunate to work in a community where the topics covered in that post are actually part of ongoing, day-to-day discussions I get to have with other teachers and technologists.

I’m cross-posting the piece here.

The Intersection of Teaching, Learning, and Technology

Richard White – 360 Reflection

When I was nine years old I read Danny Dunn and the Homework Machine, a story in which Danny and his friends Joe and Irene program a computer to do their homework for them. At that time the personal computer was still a fantasy, but the possibility of being able to have a machine handle my academic chores–my learning–was absolutely intoxicating.

Fast-forward a few years: I’d gone from programming a mainframe in high school to majoring in Computer Science in college, and then from teaching computer programming in high school on IBM PCs (pre-Internet!) to teaching AP Physics in Berkeley. I’d re-discovered the book from my childhood–there’s my name on the inside, written in my mother’s neat cursive–and read again about Danny’s hard-earned lesson: that programming a computer is not a shortcut to learning. The last page of the book, though, opens up a new possibility:

“Danny had a strange, wild look in his eyes, and a faraway smile on his lips. ‘Listen–what about a teaching machine…?'”

I began investigating the possibilities of technology-enhanced programmed instruction. The learning process for an inspired student can be a pretty straightforward process: get exposed to something new, learn a little bit about it, and then use what you’ve learned to do something interesting. For some subjects, the process of presenting information and checking for understanding is ideally suited for a computer, and I wasn’t the only one who thought so. Programmed instruction in book form had existed for years, and computer-based math instructional methods were already being launched.

I was a month or so into developing my own programmed instruction when I began to realize that this system, whatever its benefits might be, also had the effect of isolating me from the very best part of my vocation: working with students to help them understand the world around them. Teaching content, exploring with students the process of interpreting content, and perhaps most importantly, learning to develop strategies for dealing with new and unexpected situations, all demand a dynamic, creative, process that is the very heart and soul of my work. There was no way for me to write this stuff down, to program it, to “classroom flip” this aspect of my work.

That hasn’t kept me from leveraging technology where appropriate. The vast majority of my current curricular materials are online–lessons, labs, homework help, and practice tests–and students across the U.S. and abroad use these materials as a guide in their own learning. I am part of a global learning and teaching community, using technology that is faster, cheaper, and better than ever. We are actively exploring new ways that we can use that technology to improve education.

But at the heart of it all–sometimes just barely visible behind the iPads and the laptops, the email and the tweets, the websites and the Massive Open Online Courses–are students and teachers, working together, just as we always have.

And there is nothing that will be able to replace that.

Video Production

The last couple of weeks I’ve been spending some time putting together informational videos—screencasts—to be used as part of my school’s Bring Your Own Device program which begins this Fall for ninth graders.

As teachers we all spend a certain amount of time preparing content for the courses we teach, and this is a little like that… only more so. I’m conservatively estimating that I put in ~2 hours of work per minute of video, based on writing the content (script and PowerPoint), creating and assembling resources (logos, other screen captures, etc.), recording the basic presentation, post-production editing (layering in the additional resources, removing out-takes), and uploading of video to YouTube.

I don’t envision that this is going to become a permanent part of my job, but I’ve enjoyed trying to become more proficient at the process.

Here’s the current line-up.

I’ve toyed with the idea of making a How to Make a Screencast video, but… how do you record yourself record something? How do screencapture yourself doing a screencapture? This is all very meta-….