Skip to content

Coding in math class: comparing programming and problem solving

January 22, 2019

As I’ve mentioned previously, most of the focus of my sabbatical in Norway is working with faculty at the University of Oslo to help prepare middle and high school teachers for a National curriculum revision in Norway that will require math teachers to incorporate programming into the math curriculum at all levels in grades 1-13. As part of that work, I’ve now gotten to visit a number of Norwegian schools and see some of the early efforts at incorporating programming into the maths curriculum.

Overall, I’m deeply impressed by what I’ve been seeing. The government of Norway is making a serious commitment to funding professional development for teachers, and the effort to bring about this change in the curriculum is strongly focused on giving students another tool to explore and think mathematics rather than just “preparing students for future careers.” The Norwegian teachers I’ve met are also very enthusiastic about the possibilities and opportunities to improve the Norwegian math curriculum to incorporate more problem solving and inquiry based learning.

I’ve also see that Norwegian classes and schools are quite varied. The Norwegian educational system is founded on national commitment to equitable school funding that would be unheard of in the States, it even goes so far as to provide additional funding for schools that have large populations of at-risk students, and as a result every school I’ve been visited is beautiful and fully stocked with all the furnishings, equipment and resources one could imagine needing to teach a great physics or math class. At the same time, I’ve sat in on math class ranging in size from 7 students to 39, and I’ve been thinking a lot lately about how you teach programming to students in such varied environments.

Here’s something I seen in my own teaching of computer science that I find to be particularly challenging—namely how to manage large classes when students are working individually or in small groups and each student/group is in need of assistance from the teacher. Teaching programming in a math class seems to exacerbate this, since students aren’t seeing programming every day, and students are likely to have a wide range of programming backgrounds—some are quite experienced and can often race through an assignment that a novice will struggle with. What often results is every student getting stuck on their own individual problem, and needing the attention of the teacher to help debug. The bugs students encounter, particularly when they are typing their own code from scratch, run the gamut, and I’ve found most beginning students are unable or very reluctant to interpret the error messages or do much troubleshooting on their own. So what happens is you as a teacher are faced with a 20 or so students, intermittently calling for help with problems that you have to diagnose and help solve on the spot, and while your attention is focused on one student or group, the other students who are waiting are steadily growing more frustrated.

I want to think for a moment about similar spaces and classes where this doesn’t happen. The first thing I think of is many of the math classes at my school that focus on Exeter-style problem solving. Here, students are working in groups of 3 or 4 every day on challenging problems that are often beyond their individual reach. It’s not uncommon for students to be working on problems at the whiteboard in these small groups for nearly the entire class, with the teacher just walking around and checking in on each group throughout the class. Students still get stuck here, but it’s rare to see moments where an entire group can’t make progress and is calling for the teacher to intervene.

I’m curious about this difference. I think it’s true that problem solving in math and programming often provide equal levels of challenge to students, but in my experience, students I’ve taught have a much better sense of WDYDWYDKWTD (What Do You Do When You Don’t Know What To Do) when they are problem solving math class as opposed to programming. I think there are lots of reasons for this, and I’m sure the fact that problem solving sits at the hear of our math curriculum, and teachers spend a lot of time helping students to develop these WDYDWYDKWTD skills, and it’s clear those skills don’t transfer to programming when you’re faced with some sort of seemingly indecipherable error message.

This makes me think that even if programming is an topic that is occasionally interwoven into a math class, it would be helpful to spend some time explicitly teaching students many of the skills that are helpful for debugging—running your program often, interpreting error messages, learning to add print statements and comment out blocks of code to localize bugs, and all the other things we teach in computer science classes that help students to become more comfortable with debugging their own code. Of course this takes time and practice—students often don’t pick up these habits until they’ve really struggled to get a program or two working, and I’m not sure how you fit all this into a math class that already has a lot of content to cover.

But my experiences thus far make me worried for the teacher of 30+ students in a math class who is trying to get their students to do some sort of programming activity that asks for students to work independently in class. What sort of structures or activities could a teacher put in place that don’t consume too much time but could help students be better at troubleshooting their own code?

An example of computational thinking as a sense making tool in the mathematics curriculum: the locker problem

November 29, 2018

I need to write a much longer post detailing my work in Norway and all the things I’ve learned, but I first want to publish this very small example of some of of the things I’m working on.

Here’s a little bit of background. The Ministry of Education of Norway has decided to make programming part of the 1-13 mathematics curriculum for all students in Norway. This requirement will be part of an overhaul of the entire curriculum in all subjects launching in 2020.

In addition, the Norwegian government has allocated a significant amount of funding to support training and professional development for teachers. Since most math teachers have very little previous exposure to programming, this is going to be a very big undertaking.

I’m working with some faculty at the Center for Computing in Science Education at the University of Oslo to help develop training and lessons for teachers in Norway. At the moment, we are developing training for a cohort of year 8-10 math teachers in the Oslo Kommune, which will consist of a single day workshop followed by 3 half day workshops later this year.

Our goal is to train these teachers in the fundamentals of python programming, and also to help them find ways opportunities for where programming and computational thinking can extend and enhance mathematics education. I’ve been re-reading Paper’s Mindstorms lately, and again am taken with Papert’s description of how the computer can create an environment where students are free to explore and test their mathematical ideas. There is another blog post I need to write about re-reading Papert—it’s amazing to me how relevant this book is to educational technology and computing 20 years after he wrote it.

All of this has put me on a quest to find interesting problems in mathematics that might be fun to explore with computing, and this is where I want to share the example of the locker problem.


I can clearly remember when I saw this problem in my 8th grade Algebera class. Newly (over)confident that I was proficient in solving any equation involving x, I was completely thrown by this problem because there didn’t seem to be any equation I could write. My 30 year old memory is hazy beyond that, but I mostly just remember wanting to know the answer, and not really having any tools to explore it. Were I teaching this problem today, I’d love to send my students off with whiteboards, and have them make sketches trying to find patterns for the first few students.

There’s so much you can do to think through this problem with pen and paper, but now, I also got to thinking it is a great problem to also explore with a bit of computing.

I’ve created this Juypter Notebook for my first draft of an activity that explores the Locker problem with computing. Here’s a version that is viewable on the web.

In creating this activity, I decided to take a scaffolded code approach. I wanted to provide students with some code that they could use for their own explorations, and assume they have only a very basic understanding of python loops and arrays. I created a Locker class that held the number of the locker, the current status of the locker (open or closed), the number of times the status has been changed, and the list of students who “touched” the locker, along with functions to “flip” and print the status of the locker.

From this, students can create an array of lockers, and then go about flipping various lockers to explore the problem. One goal of the assignment is to get them to see how they could simulate the problem and then look for patterns to generalize.


From here, I’m hoping students can do a bit of noticing and wondering about the patterns they see in this set of lockers, or possibly see what the patterns look like when they do the same action on 100 lockers.

I’ve never taught middle school before, but, my thought is that if students were comfortable with the basics of programming and the Juypter environment, they could walk through this notebook and use it to test and expand the initial work they did to think about the problem on paper or a whiteboard.

At this point, I’d love some feedback. Does being able to quickly simulate all 100 or 200 lockers give students more insight into the problem? Does it allow students more room to explore their own ideas, perhaps seeing what happens if you skip a student in this process? There definitely seem like plenty of ways for students who are comfortable with programming to extend this code—perhaps printing a list of all of the open lockers, or a function that will print the number of times a locker was touched.

Exploring the Hydrogen Spectrum with Glowscript

November 13, 2018

As part of my sabbatical work at the Center for Computing in Science Education, I’ve learned a lot about the Norwegian Science and Math Curriculum, and gotten to meet some teachers who are doing very great work at bringing programming and computational thinking into their classes. In the next few posts, I want to share out some examples of what I’ve been working on.

One topic that isn’t a part of the high school physics curriculum I’ve taught is the Bohr model and in particular, the formula for calculating spectral lines


I must admit I’ve always found this formula a bit hard to build an intuition around. You’re calculating the inverse of a wavelength, and it’s dependent on the difference of the inverse of the squares of two integers. It was easy enough for me to realize that if you transition over a greater number of quantum states, the energy of the released photon must increase, resulting in a higher frequency, smaller wavelength photon, but that was never obvious to me from working with this equation as a student.

A teacher I met designed an activity to give students more practice with thinking about this formula by asking them to write a simple python program to calculate the wavelength of the emitted photon for a given transition. Once they had this program, it was much easier for students to think conceptually about questions designed to push their understanding. For instance, you could ask them to calculate the wavelength of the transition from n = 101 to n=1 to the transition from n =100 to n=1 and let them see that these wavelengths are nearly identical, and then come to the idea of ionization energy.

This discussion got me thinking that a glowscript program might add a bit more to this work since you could also display the spectral line that is produced for a particular transition. After doing some searching for some code to convert wavelengths to RGB values, I was able to put together this program:

Bohr Spectrum

And here is what the program produces. The top black bar is the reference spectrum of the Balmer series. If I were giving this to students, I would remove the lines 14 and 15 that calculate the wavelength of a particular transition, and ask students to implement the function to calculate lambda. Then I would ask them to try various transitions to see if they could produce the Balmer spectrum.


I’m not sure this is the deepest application of computational thinking—basically, students are just writing a few lines of code to do a calculation they could easily do on a calculator. But I do think it provides students with a tool to explore spectral lines a bit more and start to develop some insights about the relationship between transition energy and wavelength, and with the right prompts, insight into what sorts of transitions will produce visible spectral line, which might give a bit more meaning to the sea of names for spectra we have—did you know that we have names for 6 different series? Lyman, Balmer, Paschen, Brackett, Pfund, and Humprheys? Honestly, before I started working on this program, I had no idea why there were even separate names for these series, but I now see that they’re named according to the final energy level of the transition.

Sabbatical goal—visiting 25 classrooms both real and virtually

August 15, 2018

I’m now mostly settled into life in Norway and despite a few challenges, really loving Scandinavian life (read all about it in our sabbatical blog, A Year in Norway).

I’m going to starting work at the University of Oslo in a week, and I’ve begun to think of goals for this year. One goal I have is to visit a lot of classrooms and talk with many physics teachers. Unfortunately my Norwegian hasn’t made a ton of progress, thus I’m going to need to reach a bit farther afield to find some teachers to connect with.

My goal is to visit 25 classes/teachers this year. A long time ago, I wrote about virtual coaching, and a few intrepid folks signed up, and we ran some great sessions—I think I saw a couple of physics classes and even a Spanish class, and had some stimulating conversations with the teachers of those classes.

This year, I’d like to bring this project back, and I’m hoping that you might be willing to invite me into your classroom. Since I’m on sabbatical, and my work at the university is likely to be rather flexible, I’ve got a good bit of time on my hands. Here’s a rough idea of what I’m thinking:

  • We set up a pre-visit chat where we discuss your class and you let me know what you’d like me to observe.
  • I visit your class virtually, which would likely involve you setting up a laptop or tablet with skype or zoom and livestreaming your class to me.
  • We set up a debrief to talk about what I saw.

If you’ve got a different idea in mind, I’m open to modifications to this structure. If you’re interested in seeing if this could work, then please fill out this interest form.

A tale of two museums

August 1, 2018

(Note: I’m cross-posting this post from my sabbatical blog, A Year in Norway, since I think some of my regular physics teacher readers might find it of interest).

During our week in Paris, we had the chance to check out two science-related museums, the Musée Curie, and the Cité des Sciences et de Industrie.

I decided to write up this visit in the form of a letter to the curators of the Cité des Sciences et de Industrie that I will be mailing soon. Read on, and you will understand why.

Dear Curators,

Last week, I had the pleasure of visiting your museum with my wife and two daughters. My eldest Daughter, Maddie (age 7), has developed a passion for all things science, and physics in particular, so our first stop was the exhibit on the Great Story of Our Universe. As a high school physics teacher, I was eager to explore this exhibit with my daughter.

At first, I was struck by just how beautiful the exhibit was—your designers did a marvelous job of creating a inviting space that wonderfully used lighting and texture to evoke a flow through the origin of our universe, with great hands-on experiments that allowed you to touch and view meteorite samples, or see a live infrared photo of oneself to understand how we are able to classify stars based on the light they emit.

IMG 0766

Maddie looking at some meteorite samples.

I was particularly impressed by so many of the simple but engaging experiments—a parallax experiment that explained how we measure the distance to stars, by demoing how to make a measurement of a “star” on the wall across the room. My favorite demo of all was the side by side model solar system and galaxy, and the text that invited the patient to see how these two models behave very differently. Maddie and I watched it for at least 5 minutes, and she made so many observations about the differences she saw. What a wonderful introduction to Dark Matter.

After getting through the first floor of the exhibit, I was pleasantly surprised to see it went to a second floor that explains the strange physical laws that “enable us to describe and understand the evolution of the Universe.” Here again, I was impressed with all the interactive exhibits and even more impressed with your efforts to explain not just some of the oldest physical laws like gravity and electromagnetism, but also to fully cover discoveries in quantum mechanics (we loved Schrodinger’s Cat in a Box), and even some very recent discoveries in cosmology.

As I walked around this exhibit, I began to notice something strange—every column in the exhibit featured the name and biography of a famous physicist or mathematician, and every single one of them was a male. I’m also pretty sure that they were all white European men—Newton, Galileo, Descartes, Schrödinger, Lorentz, and on and on—more than 20 names in total. I looked hard, and I didn’t see a single woman or person of color in the entire collection.

In another part of the exhibit on the second floor, there was an exhibit presenting nine quotes about the nature of the universe from scientists and philosophers throughout history, and every one of them came from a white man, as best as I can recall.

It’s easy to come away from this exhibit thinking that our entire understanding of the universe, and the field of physics, is the result of the work of a bunch of dead white dudes with gray hair and more often than not, a mustache, leaving out so many important stories of women who have contributed to this understanding and what the field of physics looks like today.

There are so many incredible women scientists who have made deep and profound contributions to this story, that I find it hard to understand how they could all be left out of this exhibit. Adding a description of Vera Rubin and her groundbreaking work on galactic rotation curves would have have been an informative and powerful addition to the first-floor exhibit about the rotation speeds of galaxies and our solar system. Marie Lavoisier, Marie Curie, Joycelin Bell, Henrietta Leavitt—each of these women made major contributions to experiments and discoveries that were already mentioned or alluded to in your second-floor exhibit, and they have inspiring and important stories that are worth sharing with visitors to the exhibit.

With the exhibit’s vast amount of space and focus on highlighting recent discoveries in physics, I can imagine a wonderful addition that highlights very recent discoveries in physics—like the discovery of gravitational waves, showing photos of the hundred-person plus team that made this discovery. A wall featuring photos and descriptions of scientists today could very well inspire many of your youngest visitors to see themselves as scientists and imagine how they might contribute to understanding the universe when they grow up.

This exhibit also raises the opportunity to talk about why the field of physics has been historically dominated by men—specifically pointing out the ways in which women have been excluded from educational opportunities and research organizations since practically the beginning of science. At the same time, you could point out the hidden and unrecognized ways in which women have made vast contributions to the field of physics—from serving as the “human computers” to painstakingly type the dissertations of their husbands. Perhaps this conversation looking at the nature of who does physics could be a web resource, similar the great ones I saw on the ground floor in Cite des Enfants, where the signage encourages parents to visit a website for more ideas about how to engage children in the experiences they had in the museum.

I know that museums are incredibly powerful places—they are some of the most important places for inspiring young people and opening their minds to possible careers and ideas they would not have otherwise considered. This was made most clear to me in the case of my own daughter, who developed a love for Marie Curie after reading a short story describing her life in “Goodnight Stories for Rebel Girls.” After reading that story, Maddie decided she wanted to be a scientist just like Marie Curie and wanted to know all she could about the Nobel Prize. When Maddie read in the story that Marie Curie lived in Paris, she asked us if we could visit her house, and through that, we discovered the wonderful Museé Curie, a tiny three-room museum dedicated to the life of Marie and Pierre Curie. Maddie pushed this museum to the top of our Paris agenda, and watching my daughter in this space was magical. Maddie was thrilled to see Marie Curie’s office just as it existed, but she spent the most amount of time scrolling through images of Dr. Curie and her family on a large video screen, occasionally fixating on a picture of Marie Curie on her wedding day. Maddie has been super fascinated with weddings recently too, and when we talked about it leaving the museum, she told me how awesome it was that her hero, Marie Curie, was also able to get married. To me, this visit scored the trifecta of science museums—it helped my daughter to not only understand an important discovery in science, it helped her to relate to the story of the human that made that discovery—emphasizing her humanity and helping my daughter to see that she too can be a scientist.

IMG 0644

Maddie in Marie Curie’s office.

I wish we had more time to explore your museum. I’m sure I missed many exhibits that did celebrate the work done by women in science, and help students of all backgrounds seem themselves as scientists. I appreciate your consideration of these suggestions and look forward to visiting the museum again in the not too distant future.


John Burk

Physics Teacher and Dad of wonderfully curious 7-year-old girl who wants to be a physicist

Opening the school year with a letter to your physics teacher

July 15, 2018

Every year, I seem to go through some variant of an introduce yourself to your teacher activity, from asking students to fill out some sort of template I’ve created or to answer a Google survey. All of them have been fine—I often find myself learning some useful things from every response, and in the best cases, they do set up a basis for a building a strong relationship between me and the student.

This past year, I wanted to do something a bit different. I expressly wanted to start a dialogue with students, and I wanted to open up the format so that they could share with me the things that were important to them, rather than filling in answers to the questions I had. I also got the idea that we don’t really write letters anymore, and in the past, some students have gone the entire year without ever emailing their teacher.

So to change things, I invited students to spend 30 minutes writing me an introductory letter to me. I gave them some of the questions I’d asked in previous questionnaires (mostly cribbed from Moses Rifkin). Here’s the assignment (also as a Google doc):

Introduce yourself

I’d like for you to introduce yourself to your teachers by writing a letter. The purpose of this letter is to help your teacher to get to know you better as a student, especially when it comes to knowing how I can help you to see success in physics and achieving your personal goals. We ask that you write this letter by writing continuously for 30 minutes—don’t stop to think about what you should say, and don’t spend time proofreading or trying to find the perfect word. You will find that writing continuously is often the key to discovery—of a solution to a problem, of a thesis for a paper, or in this case, insights into who you are and why you are taking physics.

Here are some questions you can consider answering in your letter (don’t feel obligated to answer all or even any of these).

  • What should I know about your prior experience with science?
  • Is there anything you’re thinking after today’s class that you’d like to share?
  • What motivates you?
  • What are your goals for this semester?
  • What can I do, as your teacher, to help you learn best?
  • If you are struggling in this class, what can I do to help you?
  • If you are struggling in this class, what will you do to help yourself?
  • What languages do you speak at home?
  • What do you like most about yourself?
  • Tell me about something you’re good at UNRELATED to science.
  • What do you think of when you hear the word science?
  • How do you think physics might be useful for your future goals?
  • What’s the last idea that fascinated you?
  • Who is your favorite teacher and why?

Why a letter?

It turns out that writing a letter is often the key unlocking incredible opportunities in your life. It might be an interview, internship or just a cup of coffee, but the simple act of writing a letter to someone can change your life. Sadly, we don’t write many letters anymore, and sometimes, students don’t even know how. So consider this practice for the letter you will write sometime in the future that will change your life.

The responses to this assignment turned out to be incredible. Students wrote thoughtful letters that gave me real insights into their personality, motivation, interests and more. In general, I would say students had the hardest time responding to the “if you are struggling” questions, and I often didn’t get much more than “you should be available for extra help” and “I should work harder and come to you for help.” Both of these responses are a good start, but make me thing there’s a way I could ask this question to get students to be a bit more specific and also to see all the possibilities for help that exist beyond just setting up a meeting with your teacher (which many students seem to see as a very drastic step they are reluctant to take). To that end, I really like this much more specific survey Brian Frank (@brianwfrank) shared on Twitter earlier in the year.

In trying to build a conversation, I responded to each letter at length, asking follow up questions, trying to answer their questions and foreshadow what’s ahead. Though I had no expectations busy students with lots of homework to complete would follow up or even read my feedback on this non-graded assignment, a number did reply, leading to some great conversations and deepening connections.

If I were to do this again, I think I would add one thing—I would require all of my students to set up a 5 or 10 minute meeting with me after I’ve responded to their letter. This is something I definitely couldn’t do if I had a 100 student course load, but even with the small teaching loads, I’m lucky to have, some students still go all year without ever meeting with me outside of class. I think setting this requirement would go a long way toward building trust and giving students the comfort of having already met with me if they find they need to seek out extra help in the future.

I’m on sabbatical

July 1, 2018

For the 2018-19 school year, I’m going to be on sabbatical. I’ll be living in Oslo, Norway with my family, and working with some amazing researchers at the University of Oslo to add computational modeling to the Norwegian Physics Curriculum. Hopefully, this sabbatical will allow me to get back in the habit of blogging—there are a ton of things I would like to share, especially some physics related projects that I plan to work on this year.

But in the meantime, you might be interested in following our family blog about our adventures in Norway: A year in Norway.

Help me find a new home for a cache of old PASCO datalogging equipment

February 27, 2018

Note: Thanks to some wonderful responses to this post, all of this equipment has now been re-homed.

As part of the preparation for a renovation of our building, we are inventorying and packing all of the physics equipment at my school. One thing we are trying to also do is purge a bunch of the equipment we no longer use, and as much as possible, avoid sending discarding this stuff to fill a landfill somewhere. We’ve acquired a bunch of unusual equipment over the years, including a giant slide rule and giant micrometer, and thanks to the wonderful people of Twitter, I was able to find homes for both of these items.

Now I have a small cache of PASCO Datalogging equipment—750 Interfaces and a bunch of probeware. I also have a bunch of old PASCO dynamics carts, all of which I would like to donate or sell. A word of warning about the PASCO equipment—this equipment does not work with the newer wireless sensors, or even the SPARKVue sensors, as I rudely discovered when I tried to setup a old style force probe with one of the new wireless smart carts. Though I haven’t tested every single item, I believe all of this equipment is in good working order.

I think the ideal use of these would be a university or school that is already deeply invested in PASCO equipment, and really comfortable with the PASCO capstone software, which can be difficult to use. If you are new to using probeware, and just want to outfit your lab, I’d strongly encourage you to consider going with Vernier and avoiding the headaches of working with this equipment—you’ll be much happier with that equipment—I know we are.

Finally, with the exception of the carts, I’d love to sell/donate this equipment as a lot, ideally to a school with a real need, or if that can’t be found, a school that is willing to pay a reasonable price for it.

Here’s the list of equipment we have available.

If you’re interested in this, please complete this form: PASCO Equipment Interest Form.

Building a Dashboard in Google Sites

December 22, 2017

One of the the things I did at the beginning of this year that has saved me a ton of time is build a simple static webpage in Google Sites with links to all of the things I most frequently use—the specific page for my class in canvas, the page in our SIS that lets me write quick special comments, our electronic grade book and more. Here’s what my page looks like:


Here are a few quick suggestions of things I’ve found super useful to include:

  • A simple Google spreadsheet listing all of the students in my class and their emails. This is something I started doing a couple of years ago, and it’s turned out to be insanely useful for times when I need to quickly sort my students, keep track of who’s turned in some one off assignment or anytime I quickly need to generate a class list to paste into something.
  • A custom Random Team Generator for each class: We all know the power of visible random grouping, but too often, I find myself pasting in a class last at the last minute to create groups. The awesome Random Team Generator allows me to paste in a list ahead of time, and then gives me a url that I can put in my links page and revisit any time I need to generate new groups.
  • Direct links to your class in your SIS and LMS: It usually takes me 3 or 4 clicks to get to my course page in canvas. I can save myself a decent amount of time just by copying the course link from the LMS and including it here on my links page.
  • A mailto link for my class, or direct link to the new announcement page in my LMS: I haven’t implemented this yet, but having one click access from my default page to be able to send a message to my whole class seems like a big timesaver.
  • A link to my electronic gradebook: It seems silly, but having a direct link to the gradebook page for each class has made it much easier for me to stay on top of grade entry.
  • Links to course materials in Google Drive: It’s truly wonderful not to have to click through folder after folder to get to that assessment or packet I’d like to see.

Google sites is super easy to use and even if you’ve never made a webpage, you’ll probably be able to create a basic quick links page in under 5 minutes with their excellent documentation.

I’ve also started using Practice Logs this year, an idea I adapted from Casey Rutherford and intend to blog about in the near future. One of the best things this page has allowed me to do is put a direct link to each student’s practice log on my links page, so now I’m a single click away from any student’s practice log, which makes it much easier for me to give regular feedback to my students and check to see how their practice is going.

If you do setup a links page like this, you’ll want to make it your default page, and somehow in 2017, my browser of choice, Google Chrome, doesn’t seem to let you change the window that new tabs open to, so I had to use the extension New Tab Redirect, which does the trick.

Bringing Computational Thinking into A Freshman History Class

December 20, 2017

I’ve long been interested in the notion of teaching computational thinking—helping students to recognize the power of computers to help them to understand data, gain insights and solve problems in fields outside of the traditional realm of computer science. You can read, when I was working to introduce computational modeling to my freshman physics classes.

Ten years later, there are even more examples and evidence that students need to be learning to see the computer as a powerful thinking tool that can allow them to ask new questions, and open up entirely new fields of study. Here are just a few projects that have caught my eye recently

  • What is a Computational Essay? by Stephen Wolfram. This is a pretty amazing essay from the inventor of Mathematica, Wolfram Alpha and now the Wolfram One Computational Platform. Wolfram shows how students can use this platform to easily analyze differences between languages, the color range used by Van Gough, the history of the English Civil war and more. Still, every time I read Wolfram’s essays, I get super excited about the possibility, but when I start playing with the actual Wolfram Language I find myself struggling to find the right command to know what I need to do. I guess this shows how awesome it would be if I’d written my very own programming language, or maybe it just shows I really am getting old.


  • Gender roles with Text Mining and N-Grams by Julia Silge. In this post, Dr. Silge describes how she was able to use text mining to find all of the verbs following the pronouns he and she in Jane Austen’s works. From that, she was able to graph the words that show the largest differences in appearing after “she” compared to “he”, and the results showed thinking words like “remembered”, “read” “felt” and “resolved” are far more likely to follow “she”, while action words like “stopped”, “takes”, “replied” and “comes” are more likely to follow “he.” I think this could be a seed of a great collaboration with an English teacher.


I’ve been thinking about this last project on and off for a few years now, and have discovered a number of similar efforts by historians to create and study archives of fugitive slave ads, including Freedom on the Move, and this small collection of ads from Brandywine, Maryland, a small town in Prince George’s County, Maryland. All of this got me thinking that there must be a way to teach a small version of this lesson to students in our 9th grade US History class that would help them to see the ways in which historians make use of computational tools to gain new and important insights into their work, the utility of big data as a primary source, and the ways in which it can be used to add context to the typical narratives students already encounter.

This fall, a new US History teacher, Giselle Furlong, and I began to plan how we might teach a two day lesson using the Brandywine archive of fugitive slave ads, and I’d like to share what we came up with here as an example of how we tried to integrate computational thinking into a history class to give students a richer understanding of slavery and slave narratives.

Students in the class use a fantastic collection of primary sources as their textbook, which has been thoughtfully assembled over many years by our history department. In this course, they learn to do the work of historians, closely reading primary sources, carefully annotating each one, putting sources into conversation with each other in Harkness style discussions. Before our unit, students had completed reading significant excerpts from the Narrative of the Life of Frederick Douglas.

We began our lesson by asking students to simply look at the website Brandywine Slave Ads, after orienting them to the location of Prince George’s county, very close to the Eastern Shore of Maryland described in Douglass’s narrative, and barely a two hour drive from our school. Even though the web table isn’t a very useful data structure, I was impressed by the insights students were quickly able to find just by doing simple searches within the webpage with command + F, and looking for terms like “Gender : F” to discover that there were only 15 females in the dataset.

We then showed them how to copy and paste this web table to a Google sheet, which then allowed you to more easily process and sort the data by column. Still, however, the important data of gender, age, and date of escape were merged into fields with other data that made it difficult to answer many of our most typical questions, so I showed them how you can use the Regular Expressions and the REGEXTRACT function. For example, using the function REGEXTRACT(B3,” [MF] “) would pull out the occurrence of M or F when surrounded by spaces from the text block that describes gender, date of birth, and age. The key lesson I wanted students to see appreciate is when they should recognize a task that should be automated, and then how to go about figuring out how to automate it.

At this point, we divided the class into five groups and gave them the lesson we’d written in Canvas that gave each group a specific topic to focus on. (I’ve pasted the actual lesson below for those who are curious. Each group had to take our spreadsheet of structured data, and focus on one specific aspect, gender, reward offered, age, date of escape or location.

We gave the students 30 minutes to look at this data, and I was deeply impressed by both the questions they were asking and some of the things they were able to do. One student realized that numbers pulled out of the text by REGEXTRACT were still treated by Google sheets as strings, but this could be remedied by adding a 0 to each number, allowing you to then calculate averages and other statistics from numerical data.

At the same time, most students were completely unfamiliar with spreadsheets, not knowing how cells are addressed, how to do even simple calculations, enter formulas or how to copy formulas from cell to cell by dragging, or make graphs. And it’s infinitely harder to make a graph of data when you have a big pile of data and aren’t quite sure of what to graph. None of this really surprised me—I know spreadsheets have fallen out of favor in my own physics classes, but at the same time, I think they are a very powerful tool used across nearly every industry and subject that is a gateway toward seeing the utility of computational thinking, and this is the kind of work students are going to need to do in the “real world” regardless of what job they end up having.

Within about 30 minutes, each group was able to put together a small paper describing their finds, and we still had enough time left over for a short discussion where groups shared their most interesting finding or remaining question.

On the following day, we asked students to again split into small groups and answer the following questions based on their work with the fugitive slave ads:

  • What do we know?
  • What don’t we know?
  • What surprises you?
  • What is the connection between slave narratives and the fugitive ads?
  • What structures are in place to limit escape

You can see some of the responses that came up in our discussion on this whiteboard.

Overall, it felt like we could have continued this discussion for at least another class or two. Students seemed to enjoy collaborating in small teams, uncovering insights about data and trying to find connections between this work and the previous work they had done researching slave narratives.

Here are a few takeaways I had about how students understood the value of computational thinking in this work:

  • Students aren’t digital natives, but they do know some handy tricks that make them seem that way. I was impressed with how quickly they could find details simply by searching a webpage with Command+F, but beyond these tricks, students were challenged to find ways to use the computer to discern more meaning from the data
  • Students are mostly befuddled by spreadsheets. No student recognized how putting data in a spreadsheet would make it easier to search, sort and organize, and all were befuddled by the arcane ways in which you address cells, manipulate data and make charts, but they were able to make progress with clear instructions, some guidance, and Google. While it doesn’t fit within the confines of a history class, I do think students would benefit from seeing the power of spreadsheets as a fundamental computing tool and would love to see this incorporated into a math curriculum that spent some time working with large sets of data.

It was also clear that this project added some context to students’ understanding of the institution of slavery. By researching these advertisements, students were better able to understand some of the institutions that were in place to prevent enslaved people from escaping, and also the large monetary enslaved people held for slave owners. Together, these narratives and fugitive ad data paint a more complete and complex picture of slavery, one that highlights the the many ways in which enslaved peoples struggled against the institution, but also shows the ways in which so much of society was built upon slavery, well beyond just evil slave owners, keeping slaves in bondage was written into laws, customs and contracts innumerable ways, and so it isn’t surprising we have so few stories of escape.

IN-CLASS PROJECT – Maryland Fugitive Slave Ads

In this mini-project we will explore primary source evidence in the form of Fugitive Slave Ads from 1781-1861 from Prince George’s County, MD. Here is a link to the website with all source material:

Here is a link to the spreadsheet whose data you will be manipulating

We will break into 5 groups, each with a different task of exploring the data. Questions to consider:

  • What does this evidence tell us about fugitive slave ads in this region?
  • What does this evidence tell us about rates of escape among enslaved men and women in this region?
  • What does this evidence tell us about the geography of this region and the proximity to freedom for enslaved people?

Group 1

Task: What is the average age of escaped men? escaped women? 

Group 2

Task: What was the reward in 1850 (year Fugitive Slave Act was passed) what is the value of that reward in 2017 dollars? Who was the most “valuable”? Why? Choose three other years to calculate reward value.

You have find this information with this inflation calculator:

Group 3

Task: What was the gender breakdown of escaped men and women?

Group 4

Task: Create a scatterplot plotting the number of escaped slaves and the year of escape. What patterns do you notice? What are the most significant dates/date range? X axis = year of escape; Y axis =  number of escaped enslaved peopleConsult this resource to help you make the scatter plot: 

Group 5

Task: Investigate the locations for each fugitive slave advertisement. Use this interactive historic map to aid your search:

– What is the distance to freedom? 

– Compare the historic maps to current Google Earth/Maps. 

 Final Task:

Each group must write a brief summary of their findings – the SIGNIFICANCE (who, what, why, where). Submit your paragraph to this post. Put this data and your findings in conversation with what we have discussed about Douglass and Jacobs – What did resistance look like in Prince George’s County at this time? Are these numbers higher or lower than you might expect? Why?