App for facilitating calling on people

“Two posts in one day?” you ask? Yep, I’ve kind of forgotten how useful it is to organize my thoughts here and to get such useful feedback from you awesome folks.

I’ve been working on a new web app and I’m looking for ideas for how to improve it. It’s called “My Turn Now” and it helps people “raise their hands” in a discussion in a way that allows the facilitator(s) to equitably lead the discussion. The name comes from the phrase my middle kid used to say (imagine a really cute 5-year-old voice when saying it) when they wanted a chance to try something.

The problem it addresses

I was actually inspired to write it when I took over facilitating a standing committee of faculty. It only had 8-10 people on it but it was clear that a few were frustrated at how they were occasionally being ignored or talked over. I wanted the ability for me to better keep track of who wanted to contribute and to do it as equitably as possible.

It was inspired by the “raise hand” feature of so many online web conferences, most notably Elluminate Live back in its heyday. If participants hit the button the facilitator (and the rest of the “room”!) were shown the chronological list of the raised hands.

How it works

The facilitator begins a meeting and sends around a link to all participants. They’re shown a window with two buttons side-by-side. One is for “new topic”s and one is for “follow up” questions. Underneath each is a live chronological queue of each type of question, showing the name of each person who has raised their hand and how long ago they did it. Here’s a dummy example (note that this one spanned multiple days).

Example of what a user (non-facilitator) sees

This is a screenshot of user sdfdsfsd. That’s why only that “raised hand” has buttons next to it. Each user can unraise their hand or transfer their question over to the other queue.

The facilitator has a similar view but with buttons next to each that allow it to “call on” the person. Really that just removes it from everyone’s screen.

As a facilitator you can watch both queues and decide how long to let the current topic go while also watching to see how many people want to contribute.

At the end of the class/meeting/whatever, the facilitator can get a report about the discussion. Here’s an example from the first meeting I used it in a couple years ago:

Chart available to facilitator(s) after a discussion

The small text in the middle explains how to read the colorful chart. A quick impression is that this meeting spent most of its time following up a single idea because everything went blue for most of the meeting.

The chart at the top can be useful in seeing what kind of contribution each person made. It can also help you get a sense of the experience each contributor had.

Programming logistics (skip if you don’t care)

The database schema for this app is pretty straightforward. I store meeting details in one table, and hand raises in another, updating whether its a new topic or follow up and whether its been called on. The “created_at” and “updated_at” are automatically updated so the date chart above is pretty easy.

The chart uses the fantastic Google Charts API. I love using that. You just have to get your data in the right format and it just works.

The hard part was finding a way to push the data to all the participants in real time. I have played around a little with Meteor which is really good at that, but I could never get my local server working right. Luckily I dug a little in the Laravel/PHP world and stumbled on Pusher. It does all the dirty work of the crazy realtime crap, leaving me with just managing the data. Note that the free version of Pusher has a cap of 100 simultaneous connections so if I really want to extend the use of this I’ll have to start paying some money. I’d only do that if it’s worth it, of course.

What excites me about it

I know I’m not great at calling on people equitably. I also know that when I’m best at that, I’m not great at actually following the discussion. I think this could be a great tool for folks to diagnose issues with how they (or possibly their student discussion leaders?) facilitate conversations.

Feedback I’ve received has been interesting. I’ll get to the negative stuff below, but one major positive is that people love getting to know the names of people. I did it in a group of 20 or so faculty and I got exactly that feedback. It was interesting because I just assumed they all knew each other.

I think the chart/roundup could be really useful in diagnosing lots of things:

  • How much did everyone contribute?
  • Who has to wait the longest on average?
  • Are there patterns to who I call on?
  • Do I spend too long on single topics?

I also think that having everyone see just who and how many are interested in participating can help people self-regulate their own contributions.

If someone is way down the “new topic” queue but realizes their point meshes with the current conversation topic, they can hit “transfer” and likely move way up because that queue might be shorter. Similarly if the current topic goes away from your follow up, you can shift over to the new topic queue.


Other, shall we say less-positive, feedback is mostly about how unnatural it feels. People really like to 1) just start talking and/or 2) physically raise their hands, often while using body language to indicate the relevance of their particular contribution.

There were a lot of technical problems with version 1.0 (small buttons, hard to see, duplicate names, etc) but I’ve mostly cleared those up with version 2.0. I’m not really as worried about those I guess.

What’s next?

So now I need help.

  • Is this something I should encourage others to use?
  • What are the best test cases for it?
  • What are the major assumptions I’ve build in that I might be blind to?
  • What student populations might be helped? hurt?
  • What should be added? Subtracted?

Here are some starters for you:

  • I think this is cool! Can I use it? I’m excited to use it in . . .
  • I can’t believe you ripped off my idea. Ever heard of Google? Use it, jerk.
  • I like the chart, especially the part that . . .
  • I hate the chart. Instead you should . . .
  • I checked out Meteor and Pusher. They suck. Instead you should . . .
  • Why don’t you just write an iOS app?
  • Why don’t you just write an Android app?
  • This assumes students have smart phones. You need to stop assuming people have those.
  • Wait, you program in PHP. Last post I’m ever going to read of yours, goodbye.
  • Why don’t you write this in Mathematica?
Posted in programming, teaching | 3 Comments

Talking to parents of admitted students

One of the roles I have in the dean’s office is to talk to parents at admissions events. This week I talked with three different groups of parents of admitted students the day before their students registered for the fall. I wanted to take some time to get down some of the things we talked about.

Helicopter versus snowplow parents

Right at the beginning I talk about my view of helpful parents for college students. As the director of the First Year Seminar I think a lot about this, and one of the great things about working in the dean’s office is getting to know the awesome work that my colleagues in Student Affairs (like the Dean of Students) do. They’re the ones who have really taught me to value the supportive role that parents can play.

Here are my definitions:

  • Helicopter parents
    • Emotionally supportive
    • Help students understand the nature of the choices students have
    • Ultimately help students make decisions
  • Snowplow parents
    • Clear the path of anything in the way
    • Determine the direction of the path
    • Make decisions for the students

I recognize there’s a lot of nuance and gaps in those definitions, but they get me pretty far when talking with (mostly nodding) parents. Some people like “lawn mower parents” in place of “snowplow parents” but, coming from Minnesota, I really think about those times when you’ve gotten a foot of snow and only have time for a quick path. You define not only where you are going to walk, but where your mail carrier is going to walk, where your kids are going to walk, and even where the pets are going to walk. My colleague rightly points out, however, that snow plows often follow defined paths whereas lawn mowers can create very strange but well-defined paths. Regardless, the big deal is who makes the decisions.

As I talk about various signs of success that parents can watch for, I like to contrast how a helicopter vs snowplow parent might respond. If the student asks for help in deciding what to register for, the snowplow parent might say “you did well in biology 3 years ago, you should register for that” while a helicopter parent might ask “why did you do so well in biology 3 years ago?”

What problems do you enjoy solving?

Students at this point in their life are innundated with questions like:

  • What are you passionate about?
  • What do you care about?
  • What are you good at?

Those questions and others like them start to morph into “what are you going to major in?” While I find that question to be a part of interesting and useful conversations, I’ve started to use a different one: What problems do you enjoy solving?

Another way of asking that is to encourage students to reflect on times when they’ve looked up and been astounded to see it’s after midnight. What were they working on? Why were they so focused? Did they enjoy it?

What’s particularly interesting is how that question contrasts with the 3 above. A student might be passionate or care about something but not enjoy the work it takes to follow those passions. The simple example I use is “world peace.” People can be passionate about that, but many don’t enjoy the work it takes to achieve it. And the “are you good at it” one is particularly significant: If you know of problems that you enjoy solving, higher ed is a fantastic place to get better at doing it. Getting better then leads you to even more interesting problems! It’s not like we get you to the point where you’re awesome at something and everything is easy from that point on. How boring!

Parents can be awesome at helping students answer the question, which can then help them make all kinds of academic decisions. It can also help with the mid-October phone call that goes like this:

  • “How are things going?”
  • “Ugh, I’ve got 20 more calculus problems to do tonight.”
  • “Shoot that stinks”
    • This part is important. I learned a great parenting lesson from my sister-in-law: deal with your kid’s emotions first, then the logistics of the problem. It only has to take 10 seconds.
  • “Is this getting you any better solving problems that you enjoy solving?”

Ok, I know, it wouldn’t happen quite like that. But something close to it could happen.

Multiple doors

I also talk with parents about the delicate balance students have to achieve in keeping some doors open, shutting some, and diving through others. “What kind of problems do you enjoy solving” can be helpful with that, but I know the paralysis of wanting to keep everything open. It’s important to recognize that you have to dive through at least one and find whole new sets of doors. But if things go south and you have to back up again, are those other doors rusted shut?

My best piece of advice is to change the paradigm. Change them to windows, prop some open, whatever. Think about, for example, non-academic ways to explore those other pastures. At my institution you can take 4 classes, play in the Jazz Ensemble, play a sport, and volunteer at the elementary school across the street all at the same time. What can those non-academic experiences do to help you understand your door environment?


I’ve written a little about the SEEC paradigm before, but I’ve found that it really helps when talking to both students and parents. Quickly, students should:

  • SEE that all ideas are connected
  • EXPLORE those connections
  • EVALUATE those connections
  • CONTRIBUTE new connections and ideas

Encouraging parents to talk to their students about this paradigm is useful, I think. Every course they take should add to the student’s “lenses” to look at the world. Every new lens helps you SEE whole new connections for an idea. Seeing them is always the first step to EXPLORING, EVALUATING, and, most importantly, CONTRIBUTING. Is that calculus homework going to help you SEEC knowledge?

It’s fun to talk to parents about what to watch for by Thanksgiving in the fall. Have they CONTRIBUTED a new idea? They should have. Either in a discussion or a paper or even a homework assignment. Certainly they should be CONTRIBUTING “big” ideas by the time they’re ready to graduate, but even in that first semester they can do it. But they have to S-E-E first, and that’s what our curriculum is all about (FYSEM, General Education, and Majors all do that).

Signs of success

Here are a few of the “signs of success” I encourage parents to watch for:

  • Being able to articulate what they’re up to using the SEEC paradigm
  • They should have had at least one personal conversation with every instructor they have by Thanksgiving. Typically at my institution the biggest class they’ll have is around 40 and I know my colleagues can handle this.
  • Are they owning their education? Do they turn the lights on in the classroom or wait for the instructor to do it. Are they EXPLORING cool connections that a new lens they’ve developed lets them?
  • They should average a new faculty or staff member name on their “forever list” every year.
    • “forever list” is my shorthand for that list of people you keep contact with. It’s your holiday card list, or the list of people you’d consider inviting to your wedding. I encourage parents to ask students if they’ve added one to the list around April of their first year. They really should be making that strong of a connection with a faculty or staff person every year. Admittedly Facebook has changed this equation a little, but mostly people get what I mean when I say this.

In addition to those signs, it’s helpful to talk to parents about the W curve. It’s a plot of how settled/happy/adjusted students are at college in their first term and it looks like a ‘W’.

Your ideas?

Thoughts to add or subtract? Here are some starters for you:

  • Thanks for this, it really helps me. What especially resonated was . . .
  • What a waste of time. I could have written this myself, but I would have changed . . .
  • Helicopter parents are the bane of my existence. Why are you praising them. Please take this post down.
  • Here’s a few more descriptions that can fill out your parent spectrum . . .
  • What did that last commenter mean by “parent spectrum”?
  • I think “follow your passion” is a much better way to talk to students and here’s why . . .
  • I think “follow your passion” has harmed some students. I’m not sure I like your approach any better but that last commenter was a little over the top so I just stopped by to say thanks for giving me something to think about.
  • I liked what you said about balancing open doors. Here’s what’s helped me with that . . .
  • Students should know the one door they want to go through before enrolling. It makes things much easier.
  • I think it should be SEECC with the second C being “communicate”
  • SEECC is really hard to pronounce. What was that last commenter thinking?
  • I like your “signs of success.” Here’s a few that I use as well.
  • Your “signs of success” are way off the mark. Instead you should use . . .

Posted in dean | 4 Comments

Scripting in the Dean’s office

Today I spent a good part of my day solving a couple of problems with a couple of colleagues. It was a pretty typical day in the Dean’s office (I’ve been the Associate Dean for undergraduate programs in the College of Liberal Arts for a couple years now) in that there were logistical problems to be solved that I was able to help with. What was interesting was that for both problems I leveraged my experience in scripting algorithms to accomplish tough tasks. I thought it might be fun to document a little of what I did to help with arguments about whether learning scripting is a useful thing for folks to do. Certainly a lot of the programming that I do is for particular physics projects, but it’s been interesting how often my skills have come in handy in the Dean’s office.

Assigning New Student Mentors to FYSEMS

One of the hats I wear is that I’m the director of the First Year SEMinar program (FYSEM). One of the cool things we do with that program is to build a student success triangle for new students consisting of a FYSEM instructor, a Campus Colleague (a staff member at the institution), and a New Student Mentor (NSM). We find that triangle works really well, and right now we’re right in the midst of assigning NSMs to the FYSEMs scheduled for this fall.

About half the FYSEM instructors identify NSMs that they want to work with. For the remainder of the NSMs, they give their top three preferences and I write an algorithm to pair them up, trying to make them all collectively as happy as I can, based on their preferences.

Basically I use the approach I lay out in these two posts. I randomly assign the NSMs to the available FYSEMs and look to see how happy everyone is. I generate an entire generation of such assignments and determine which ones are the happiest. From those I choose a few and mutate them by making a few switches (randomly). This produces the next generation and I repeat it.

What’s interesting is that I’ve done this for three cycles now and each time I have to make small tweaks to the cost/fitness calculation. This year we had one extra NSM and I had to determine which FYSEM could get two to maximize the happiness of everyone. I didn’t want to re-build the whole system (which currently assumes the number of NSMs and FYSEMs is the same) but realized instead that I could just duplicate one of the FYSEMs and then run the algorithm. Of course that forces that FYSEM to be the one that gets the spare, but the whole thing runs fast enough that I just repeated that with every possible FYSEM to be the extra one and at the end looked for the happiest situation. It worked great!

Fixing hyperlinks in a Google Doc

We’ve got an important visit coming to campus this weekend by a team of observers. They’ve been given a bunch of linked documents to get them prepared for their visit, but we hit a technical snag. It seems the documents we sent occasionally have broken links. They’re not really broken, they just seem to lose the folder structure that’s built in. Regardless, we wanted to make sure that when they were here they for sure had the access they need. I was talking with a colleague in the department and we wondered about using a structured Google Drive folder system as a backup. I thought it might work, but my colleague pointed out that all of the links came in with the wrong structure when we converted it all to Google Docs.

I said I could probably help, but I wanted to make sure that there was a clear path to doing it. He said that all the links end with the proper file name, and that those files were all in a different Drive folder. I said I could probably write a script to get it done, but I wasn’t sure how long it would take. I predicted two hours of learning to fix the first link and then two minutes to fix the other 246 links. He pointed out that he figured it would be 2-4 hours of his labor to do it, so it didn’t seem to be the obvious solution. However, I had the time and he wasn’t sure he could do it today, so off I went.

Long story short, I think it took me only a total of an hour to get the script working, and then it really was only two minutes to fix them all. Pretty cool!

First I just googled how to find links in a Google Doc and found this super helpful Stack Overflow post. It was frustrating to see how hard finding the links were, but I really loved two things about it: 1) It just hunkers down and deals with the fact that every character that’s part of a hyperlink has a connected url. That’s really a pain, but the code clearly just brute forces its way through until it gets to a character that doesn’t have a connected url. It only collects the url once, then spends the rest of its time hunting for the end. 2) It uses a very cool recursive approach, scraping any links it finds and, if it stumbles on a child of text it just sends that child through the very same function.

At first I just wanted to make sure that it could find the links I was looking for (ones that looked like “http://Evidence/…”). That worked pretty well, so I tried to figure out how to do the replacement. First I had to grab the text after the slash and decodeURI it (that’s a javascript function that mostly just turned %20 into a space). Then I had to find the Google Drive url for the file with that name. I’ve learned from the past not to do that sort of hunting around Google Drive over and over again because it’s really kind of slow. So instead I pulled in all the evidence files and built a javascript object with keys given by the file name and values given by the url. Then I could just get the new correct url by doing efiles[filename]. Very cool.

So I made a loop that went through each found link, found the correct url, and then updated the text in the original Google Doc. What was super cool about the Stack Overflow code was that the elements I was dealing with (searching, finding children, doing replacements) were live in the sense that if you made a change, it actually changed them in the original doc. Very cool.

When I first ran it I was super happy and I called another colleague to double check that all the new links were right. However, during that phone call I noted that a bunch hadn’t been fixed. All the ones that were part of bullet points were untouched! So I spent a half hour trying to understand what was different about them. Unfortunately I could have saved all that time if I’d just read the comments under the Stack Overflow code. It turns out that code assumes that all hyperlinks have unlinked characters at the end. The bullet point ones didn’t have that! A simple adjustment to one of the if/then arguments fixed it and I was done!


So, a fun day. I got to solve two problems that needed solving and I got to do some fun coding, using two very different programming languages (Mathematica and javascript). I would argue that my particular skill set is an excellent one to add to a Dean’s office, as these sorts of problems show up a lot. Maybe I’ll try to document more of them here just to have a record of them. Off the top of my head, here’s some other projects I’ve used these skills on:

  • Student evaluation comparisons
  • Finding student paths through our curriculum
  • A neural network trying to understand what makes our students successful
  • Sending individualized Dean’s List notifications
  • Sending emails to students on our Early Alerts list and connecting them to proper resources
  • Collecting applications for general education requirements and assigning them to random members of the Undergraduate Curriculum Committee
  • Helping folks transition off of committees by changing the owner on thousands of documents
  • Making graphs of the enrollment trends for courses

Your thoughts?

Here are some starters for you:

  • I really like how you paired up the NSMs. What I liked the most was . . .
  • I don’t understand why you don’t just randomly assign the NSMs. Who cares about their preferences?
  • Can you tell me more about the triangle, especially the Campus Colleagues?
  • In your 7 year old post you talk about Nobel Prize work on the pairing problem and yet it seems you still haven’t read and applied their work. Jerk.
  • Why don’t you just print out all the evidence docs and put them in an awesome binder for the visitors?
  • Are you saying there should be some technical requirements to be an Associate Dean?
  • Why don’t you just write Ass Dean?
  • I have a pairing problem. Can you write an algorithm for me? It would have to be in python.
  • Google wants everyone to just use search to find everything. Why didn’t you just strip the hyperlinks and tell people to just search for any evidence they need?
  • Let me get this straight: Half this post is just riding on the coat tails of someone who wrote a Stack Overflow answer. How can you call yourself a programmer?
Posted in dean, programming, technology | 7 Comments

Doppler Drum Corps

One of my favorite oral exam questions to give students in introductory physics classes is to ask them whether marching bands should worry about tuning because of the Doppler Effect (lots of details below but the short version: if there’s relative motion between the sound source and listener, the two disagree about what pitch they hear). It often leads to a great conversation about who’s moving and how and who might hear any tuning problems. Sometimes I get a confident “no” from a student and I know immediately that they’ve got some marching band experience. Mostly they talk about how they’ve never noticed it so it must not be a problem. It’s fun to do some quick calculations to see how fast you have to walk for this to be a problem.

Enter my kid’s fun adventure these past few months. They’ve committed themselves to taking the next step from their high school marching band experience (when they won the state championship last summer!) and to set a goal to get into one of the elite Drum Corps International programs. Long story short: They made it! They tried out for a few corps to get a sense of their culture and are super excited to play with Phantom Regiment this summer.

So, the question we’ve been talking about lately is whether marching corps at the elite level should worry about the Doppler effect. They told me a really interesting detail about the training they go through: in order to optimize the tuning for various chords, some corps ask their members to perfect the process of being able to raise or lower their pitch by eight cents. What are cents? If you consider two consecutive keys on a piano, break up the pitch difference between them into 100 pieces. Each of those is a cent. Therefore eight cents is effectively eight percent of the way to the next note on the piano. When they told me about that I started to wonder if the Doppler shifts you’d get in normal Corps routines might be on par with those eight cents.

Structure of this post (for those that want to skip the derivations 🙂

  • Doppler effect discussion including a derivation for the Doppler shift at arbitrary orientations of the source and listener (though always with a stationary listener)
  • Pitch/frequency discussion including the Just Noticeable Difference
  • Issues around simulating the Doppler shift for brass instruments
  • Simulations of brass instruments doing simple maneuvers on the field and how that affects their perceived sound
  • Discussion of the ramifications (if any) for Drum Corps

Doppler Effect

For everything I’ll be talking about in this section, the listener will be stationary and only the source will be moving. There are two reasons for this. First, it’s what happens in Drum Corps. The only listeners who are moving are the players themselves and they’re not the target audience. Second, this derivation is much easier without the listener moving. See if you can spot why.

Below is a sketch of the generic situation. The source is L units “up” and x units to the side of the listener. The source is moving at speed v straight down. Note that this represents all possible orientations (see below for a proof of that).

Original orientation of the source and listener

In order to figure out the frequency that the listener hears, we’ll focus on the period of time between when the first and second wavefronts hit. The first is launched when the two are in the orientation shown above. The second is launched after the source moves down for one period as measured by the source as shown below.

orientation of the source and listener when the second wavefront is launched

The time it takes the first wavefront to get to the listener is given by the distance it has to travel divided by the speed it moves at, which is the speed of sound that we’ll label “c”.


The time it takes for the second wavefront to get to the listener is the sum of the time that the source waits to launch it (also known as the period as determined by the source) and the time it takes to travel from that location to the listener:


where T_1 is the period according to the source. The difference in those times is the period that the listener would measure:


Typically we calculate the Doppler shift as the ratio of listener frequency to source frequency:


This is ugly! We were hoping for some expression that would be independent of either frequency, since certainly that’s how the Doppler effect is typically derived. The way we get around that is to take the limit when T_1\rightarrow 0. Why do that? If we expect a common ratio to work it should work for all frequencies, and when the period goes to zero then the source has barely moved. Since most marchers move a lot slower than the speed of sound this seems to be a reasonable thing. Taking that limit forces you to go to the Hospital. Sorry, I meant to say L’Hopital. The upshot is:


By the way, you get the same result if you take only the first term of a Taylor expansion of the full expression above. Also note that if x=0 you get the familiar:


While this seems like quite a constrained situation, it turns out that any (stationary listener) scenario can be described with an appropriate L and x. The reason is that there are three physical points of interest: 1) the original location of the source, 2) the location of the listener, and 3) the location of the source when it launches the second wavefront. Those three points will always be on a plane together and so you can reorient them so that (3) is directly below (1) and then you can measure L and x from that. If you let \hat{v} represent the unit vector from 1 to 2 and if you label the three points \vec{r}_i you get the following for L and x.

L=\left(\vec{r}_3-\vec{r}_1\right)\cdot \hat{v}


To get a sense of how the Doppler shift changes as x goes away from zero (which is how it’s usually derived in introductory physics), here’s a plot of the perceived frequency when the source frequency is 440 Hz (common tuning note) with L=10 meters and x ranges from zero to 10 meters with the source moving at 1% of the speed of sound:

Doppler shift for 1% speed of sound with a transverse position given by x and a longitudinal distance of 10 meters

Another way of looking at is is to plot what you hear as a sound sources approaches and then passes you but misses you by, say 1 meter. This time I’ve set the speed to be 55mph.

Hearing pitch changes

I know, I know, you don’t care about all that derivation. You just want to know if people marching around causes enough of a problem for elite drum corps. Ok, fine, but now we have to talk about how much pitch shifting you, or more likely the DCI judges, can handle before things are either noticeable or bad (or perhaps those two are the same). Mathematically as soon as a pure tone gets mixed with one even one cent off you’ll hear beats, which is often the hallmark of things being out of tune, but even then you’d have to know if the two tones are being played long enough for you to even notice (one cent off at 440 Hz is 440.25 so the beat period would be 4 seconds). Secondly, there aren’t any pure tones in Drum Corps (no flutes allowed) so there’s always some things that aren’t perfectly in tune.

That takes me to another favorite thing to teach: You can’t possibly get all 12 notes in an octave (7 white keys and 5 black keys on the piano) to be in tune all at once. Speaking an an amateur piano tuner, that really sucks! What’s going on here? Western music has coalesced around 12-tone scales for centuries and now you’re learning that it’s an impossible task. Yep, them’s the breaks. The way I usually teach it is that if you declare a frequency ratio of 3 to 2 as pleasant sounding (it’s what we call a perfect 5th in music, so C and G together or, for us brass-leaning folks, Bflat and F), then you should be able to go all the way around the circle of fifths by raising the frequency by a factor of 1.5 (3 to 2 remember) and eventually come back to your original note, though of course several octaves higher. Ok, let’s do it. We’ll start at A 440 and then keep multiplying by 1.5 12 times to all the way around the circle of fifths and back to an A. The order is A, E, B, G flat, D flat, A flat, E flat, B flat, F, C, G, D, A. What do you get? 440\times 1.5^{12}=57088.38. Ok, big deal. But how many octaves up is that? 57088.38=440*2^n\rightarrow n=\log(57088.38/440)/\log(2)=7.02. Uh oh, that’s not a integer! See the problem? If it was a perfect 7 octaves we’d be in business, but it’s not.

So how does the music industry deal with that mistake? Well, there’s lots of ways. Each is called a “temperament” and there’s been lots of shifts to which one is dominant over the centuries. Some, like the “Pythagorean Temperament” sounds great for 5 or 6 of the notes but really can sound like crap for the rarely used accidentals in the key of the song. If you’re going to just use those 5 or 6, that’s the temperament for you. However, given how most instruments these days can play in any key (one key’s accidental is another key’s super important 5th) and given how composers often make use of key changes, the “equal Temperament” is basically the dominant player these days. Have a electronic tuner in your pocket right now? It uses the equal temperament. “Equal” sounds great, but what it really means is that only the As are perfect and the problem described above is spread around equally to all the other notes. That’s right, if you use a digital tuner, only your As are perfect! Don’t believe me? Well the E on a digital tuner is set to 659.255 Hz. That’s not the “perfect” 440×1.5=660 you were expecting, is it? The other temperaments spread that pain in different ways, some concentrating it on a single interval that people have called the “wolf fifth” because it sounds so horrible if you use it.

Ok, long tangent done, back to what “sounds bad” when it comes to pitch problems. There’s a few ways to describe this. One is the beats described above. If you’re tuning with a buddy who’s playing the same instrument, you can hear that you’re close to being in tune when you hear your combined sound to be throbbing (loud, soft, loud etc). That rate at which the beats happen tells you the difference in your frequencies, so if you can make that rate be zero, you’re in tune. That works best when you’re just a few Hertz off from each other, otherwise the beating is so fast you can’t really hear it.

Another way is to listen to one instrument and then another (so they’re not playing together) and determine who is sharper (or flatter) than the other. Humans can do this, but only down to a frequency separation of about 8 cents (remember those from above?). That’s what’s known as a Just Noticeable Difference. In other words, if two instruments are only off by 4 cents, say, you can’t tell them apart if they play one at a time, but you can hear the beats if they play together.

Simulating Doppler Shifted Brass

I wanted to be able to not just calculate how much the Doppler shift affects Drum Corps but also try to simulate the sounds a little. My first try was to see how to make a midi sound file be off by a little. Unfortunately Mathematica’s “SoundNote” function that can access midi samples only lets you play pitches on the equal temperament (but see below to see how I got around that). So my second try was to simulate a single instrument (a tuba, since that’s what my kid plays) with just a small collection of pure tones. I used the amplitudes and frequencies from this page to produce this sound of a single tuba:

Simulated tuba with just a small number of pure tones

The nice thing about just a small number of pure tones is that it’s easy, then, to apply the relevant Doppler shift. It definitely sounds like a low brass instrument, but I was hoping for better.

Luckily there’s a somewhat new function in Mathematica that gives me access to the raw time data for the midi samples. Using that, I can simulate the Doppler effect by resampling that time series and then playing it back at the original sample rate. I do that by interpolating the original data so that I can make an estimate of the pressure wave’s value in between the data points that were actually collected. Here’s what an unshifted low B flat from a tuba sounds like from the midi collection:

I guess it sounds a little better. Ok, so now I have all the tools to make some simulations.

Drum Corps simulations

Here’s the situation I’m going to simulate:

Phantom Regiment from the year before they won the championship.

Instead of having them play a series of notes, I’ll just simulate them playing a simple B-flat major chord with the contras on the low B-flat, the baritones on the D, the mellowphones (think marching French horns) on the F, and the trumpets on the high B-flat. I’m only using 12 players (3 each of the various horns all shuffled together spanning 50 yards). Here’s what the simulation sounds like when they’re standing still 10 meters away:

hornline playing B-flat chord 10 meters away standing still

Here’s them 10 meters away but jazz running towards us (they cover 5 yards every 6 steps at 160 beats per minute so 6 to 5 160).

Hornline 10 meters away coming towards us at 6 to 5 160

Here’s the same but 1 meter away (there’s a big sound difference here because the ones in the middle dominate the sound).

Same hornline only 1 meter away

And here’s the prior three all strung together one after another:

Previous 3 all strung together

Finally, in case none of those sound bad to you, here’s the 10 meters away version with them running at three times the speed.

10 meters away but going 3x as fast just to really show the distortion

To get a sense of how many cents sharp the players are in these simulations, here is a plot of the cents for everyone, first at 10 meters:

Cents for the hornline players when they’re 10 meters away

and then 1 m away:

cents for the hornline when they’re 1 meter away

What’s interesting about these two is that if there had been a player in the middle, their cents would have been the same for both, namely 10.3. But the biggest change as the horn line gets closer is that the ones towards the end have very small shifts.

Drum Corps Ramifications

So, can you hear the difference? Certainly the corps think that somewhere around 8 cents is worth worrying about, as my kid has been asked to try to reliably make that sort of change. But if they’re marching around, the Doppler effect brings about that level of pitch shift into play, so if you don’t correct for it, all the other things you’re doing at that level are washing out.

Of course, a lot of the big hits you think of in drum corps happen when they’re standing still. Certainly the youtube traffic seems to head toward clips like this one of them just warming up standing still:

(I love that video. I get goose bumps every time I listen to it).

So, if on the order of 8 cents is meaningful to you, it might be worth it to look at your drill (that’s their marching diagram/orders) and determine if there are times when making a light adjustment might make sense. I’m happy to help (but likely only for Phantom 🙂

What do you think?

  • I really liked this, especially the part where you . . . My question is . . .
  • I think this is dumb, especially the part where you . . . My snarky comment is . . .
  • I know for a fact that some judges move around while judging and so you’re a liar when you say that the target audience doesn’t move.
  • Why do you say any three points can share a plane? I’m sure there’s some crazy non-Euclidean geometry where that’s not true but I’m too furious with you right now to prove it.
  • Flutes don’t produce a single pure tone, you anti-woodwind-ite.
  • My Just Noticeable Difference for quality blog posts is telling me that this sucks.
  • I thought you said your kid got into Phantom Regiment. Why are you showing a Carolina Crown video?
  • Why didn’t you talk about the cents difference it takes to go from equal tuning to perfect 5:4 and 3:2 tuning which is surely what these corps do?
  • Once again you’ve forsaken Python to do all this in Mathematica. Loser.
Posted in fun, general physics, mathematica, parenting, physics | 4 Comments

Learning outcomes for research skills

tl:dr: I’d love some feedback on the SEEC approach with students:

  • S: Students should see that all ideas are embedded in a complex web of ideas
  • E: Students should explore that web when dealing with an idea
  • E: Students should evaluate the connections to the idea, looking at issues like authority, history, etc.
  • C: Students should contribute to the web when dealing with ideas.

One of the hats I wear these days is “Director of the First Year Seminar” at my school. This year we’ve been looking at nearly every aspect of our undergraduate curriculum with an eye toward student success and retention. The first year seminar (FYSEM) program is a big piece of that, at least from my perspective. Last year we streamlined the learning outcomes for the program from 17 down to 3. If you were to look at the list of the 17 you’d likely nod your head to them, but they were unwieldy from a training perspective, especially for new faculty to the program. So now we’re at three and it’s been fun to work with the faculty and staff to really think about them all from a student success and retention framework.

In this post I’d like to talk about what we’ve been up to for the learning outcome that’s about students doing a scholarly or artistic research project. We did a lot around it this past fall, but I’m hoping to get some feedback about a new paradigm we’ve come up with to place fysem in the larger picture of the entire undergraduate curriculum for this issue. We call it SEEC (see the acronym spelled out at the top of the post).


We want our students to understand that all ideas are connected to other ideas. Even thoughts off the top of our heads are in the complex web of ideas that exist. We want students to realize that research isn’t just formal research projects but rather that it’s all a matter of degrees when swimming in the sea of connections around an idea.

Critical thinking is key here. One of my colleagues asks her students in class if they’ve engaged in critical thinking that day. Sometimes they shrug but she reminds them that just getting dressed in the morning involves critical thinking. They had to determine how their clothes would interplay with the weather, the people they’d see, and their laundry schedule. While admittedly they weren’t overly explicit about it, they were drawing and exploring many connections around that single task. Similarly we want students to see that every idea has connections to other ideas in myriads of ways.

As students dive into a field of study, we want them to develop tools that help them see whole new layers of connections. Lots more of that below.


Once students start to see and seek out the connections, we want them to explore them. What types of connections exist? What tools or skills do you need to even see the various types? Are any contradictory? Are any tangential? Are any connected to whole other ways of thinking that you’ve studied?

As they continue to pursue a field of study, the students not only see whole new levels of connections, but learn how to examine the connections. In physics I think about the various models we want students to think about: the momentum principle, conservation theorems, wave/particle duality. I want my students to have those approaches handy when they explore a new idea in their physical lives.

At the FYSEM level we want students to be able to use library research tools to explore connections and to hone skills that their future field of study will lean on and further refine.


Seeing connections leads quickly to evaluating those connections. Trimming them to refine an argument. Ranking them on scales including authority, history, appropriateness, meta steps, etc. Seeing and exploring can get students lost in the forest, collecting trees instead of critically evaluating the idea. Evaluation tools can help students craft critical arguments, especially from different viewpoints.

At the FYSEM level this is strongly connected to source evaluation that the librarians help our students with. We want, for example, our students’ annotated bibliographies to be deep, rich, and most of all useful. Evaluating sources and making clear their connection to an idea that a student is researching is vital in not getting lost in the forest.

As students get deeper into their field of study they will see and explore whole new layers of connections for an idea. They need to be able to evaluate those connections using tools developed in their field. In physics this could be connected to subtleties of energy use/flow/conservation, for example. As students think about more ways that energy can be stored, they get a deeper understanding about things like inelastic collisions, for example.


This one is vital to our plan. We want students to add to the web of connections around an idea. Even something off the top of their head should be placed in the web and appropriately connected. Students should be able to draw new connections, question existing connections, contribute whole new nodes to the web.

Another hat I wear in the dean’s office is speechifying for prospective students and parents. I’ve been heard many times talking about how at our institution we want students to be practitioners while they’re still with us. We don’t want to simply give them tools/knowledge in the hopes that they’ll be practitioners after they graduate, rather we want them to put those things into practice with us. This often gets a decent reaction from parents, but recently we’ve been having conversations internally about whether that’s an appropriate goal. While I’m ok calling my students physicists while they’re working with me, my psychology colleagues struggle with calling their students psychologists, both from the perspective of societal titles and from the idea that perhaps undergraduate majors don’t yet have the skills/tools/knowledge to own that title. I think this notion of students “contributing” to the web of ideas is likely more palatable to everyone.

At the FYSEM level this would likely get the least attention, as S, E, and E would get the primary work. However, our hope is that work will help our students realize that everything they’ve been seeing, exploring, and evaluating is produced by human thought and interaction and that they are expected to do the same.

The students’ field of study is where this will happen, particularly at the capstone level. Armed with the tools they need to interrogate the web of connections around ideas, they’ll be able to produce new ideas that are carefully embedded in the web. They’ll do collaborative research with my faculty colleagues, honoring the great meme: “if we knew what we were doing, they wouldn’t call it research.”

So, what do you think? Can you help me refine this? Here are some starter comments and questions for you:

  • How do you pronounce “SEEC?”
  • I like this, but I think it needs more. Here’s a new letter for you . . .
  • I don’t like this because it has too much, here’s one fewer letter for you . . .
  • Why do you think FYSEM won’t concentrate on “Contribute?” It seems like a great place to do it. Here’s a few ideas how . . .
  • Why do you use the big first letter option in WordPress? I think it looks dumb.
  • This is exactly what my school does, thief. We call it _____, though, loser.
  • I teach _____ and this would work great for grounding the work that my students do. Here are some ways I think about that . . .
  • I teach _____ and this does not at all reflect what my students do. Please don’t push this on us!
  • What school do you teach at? I want to encourage my kid to go there.
  • What school do you teach at? I want to discourage my kid from even thinking about going there.
  • They let you direct the FYSEM program? That’s awesome, I think you bring the following great qualities to that . . .
  • They asked you to direct the FYSEM program? What were they thinking?!
  • I never see you wearing hats, stop lying.
Posted in dean, teaching | 5 Comments

Stable, asymmetric dice

A while ago I set about trying to find asymmetric dice that might be fair. I’ve put a lot more work into it, but mostly because there’s been a lot of frustrating interesting tangents. Here’s the main thrust of the project:

  • Original plan: see if I can use evolutional programming to find an asymmetric die that rolls fairly
    • Asymmetric is easiest to do by avoiding the platonic solids (the dice D&D folks use, for example). A lot of what I’ve been doing has been with a 46-sided die (not sure how I landed there, but it’s 25 vertices, which is a fun number).
    • The idea was to form random ones and evolve to a shape where the distribution of sides was flat enough
  • Updated plan (because it’ll run a lot faster): Find an asymmetric unfair die but find contiguous regions on the die that all collectively have the same probability of landing. For example, on the 46-sided die, find, say, 7 collections of sides that all have the same total probability. Then, if you printed it, you could use seven numbers, most (all?) of which would repeat a few times. This came from a great question I got at a local AAPT meeting from my awesome colleague, Bruce Bolon.
  • In the last post you can see that I’ve basically worked out how to roll a 3D die. I can also run on a server at work so that I can roll it thousands of times to get a decent histogram of the probabilities for each side.

Here are a few examples of 7 contiguous regions on a 46 sided die:contiguousregionsdie

As you can see in the previous post, I figured out how to roll 3D dice. I figured I could just roll a die a bunch of times, find the histogram of rolls, and be off and running.

But then I hit a problem (the first of many!). I needed to make sure I randomized the initial conditions of the roll. I figured I could just randomly orient the die before the roll begins. However, I started to notice odd histograms. I double checked things by rolling perfect platonic solids. Here’s the histogram of the probabilities of landing on each side of an 8-sided die where I randomized the die by picking a random axis and a random angle to rotate around that axis:

preorientation histogram using random axis and rotation

Oops! See the problem? Wow it took me a while to figure that out, but I finally did, thanks to the discussion on page 108 of this link. It turns out that picking a random axis and rotating around it randomly quite often leaves the original north pole in the northern hemisphere. Ok, so then I just did random Euler rotations:octahedron histogram with fixed euler.png

This time showing the expected even line and the standard deviations based on the number of rolls. Ok, cooking with fire, right? Nope.

So I moved onto larger dice and thought I’d be ready to go. But I discovered that I would often get sides that would never roll. I wondered what was going on and found out that a randomly generated die often produced sides that were unstable. First let me explain how I produce a random die: I pick, say, 25 random points on a sphere and use Mathematica’s ConvexHullMesh to turn that into a 46 (or 2n-4) sided die. Next, what do I mean by unstable? What I mean is that when you put that side flat on the surface of the table, the center of mass of the die is not directly above it. If that happens, it’ll always tumble away from that side.

Ugh, so that meant I had to carefully figure out which “random” initial points on the sphere that I could use so that all sides had at least a chance of rolling. I figured that it’s probably best to stick close to dice that have the vertices roughly evenly spaced, so I started digging into how to do that. This site helped a ton. In particular, it talked about how you could treat the vertices as charged particles and find distributions of the vertices that minimize their potential energy. So that’s what I set out to do.

Here’s a vid of starting the vertices randomly and letting them move under the influence of their mutual repulsion along with some viscosity (so that they’d settle down near a stable point):46sidedevolution.gif

That looked great, but then I did a side-stability test and found that, while the energy had effectively been minimized (to my satisfaction, at least) there was still a pesky side that was unstable! It’s hard to see, but here are two images that highlight the unstable side. In each, there’s a blue line drawn from the center of mass of the die (which isn’t the center of the sphere that all the vertices lie on!) perpendicular to the face of the offending side. If that line pierces the face, then it’s stable. You can see in the zoom image that it’s just barely unstable:

Cool, huh? I was excited that maybe there was some weird physical thing going on here until I reran the energy minimization with different (random) initial locations for the vertices. When I did that, the final die was fully stable. Still, that’s pretty interesting that it can sometimes not quite be fully stable.

So what’s next? I’d like to take a fully-stable die and do the contiguous regions analysis. I haven’t run the thousands of rolls it takes to get a good histogram, but this analysis of a 36 sided die shows good correlation: Red: probability of rolls, Green: solid angle of side as seen from center of mass, Orange: area of side, Blue: volume of cone from center to each side. It should be noted that this die had a few sides that were unstable, so I think that’s why the correlations aren’t great.

36sided1000eulerfix comparison

But with that, I think I’m excited to use this 46-sided die (this is a graph of the area of each side):

46 side sizes.png

Whew, so that’s where I’m at. Fun, huh?

UPDATE: Here’s the same graph as above but for a fully-stable 36-sided die (Again: Red: probability of rolls, Green: solid angle of side as seen from center of mass, Orange: area of side, Blue: volume of cone from center to each side):36stable10000comparison

Your thoughts? Here are some starters for you:

  • This is cool. What’s D&D?
  • So basically this is all Bruce’s project? Why isn’t he given credit as an author on this post?
  • Why do I have to flip to page 108 of that link? Can’t you just explain it, loser?
  • What do you mean by random Euler rotations?
  • What do you mean when you say that n points lead to a 2n-4 sided die? That seems suspicious because that means that I can have a d6 with just 5 vertices. A d6 has 8 vertices and Plato says so!
  • Why don’t you try to find a fair d6 with 5 vertices?
  • What do you mean by “to my satisfaction at least” when talking about minimizing the energy? Surely you mean you’re finding the perfect global minimum to 100 decimal places, yes?
  • At first, you said the only way to test for stability was to see if the center of mass was directly above the side when it was resting on the surface. Then you said you just drew a line from the center of mass that was perpendicular to the side and looked to see if it pierced the side. Which is it?!
Posted in fun, mathematica, physics | 6 Comments

See the process

A few weeks ago I gave a presentation at the American Association of Physics Teachers summer conference in a session about accessible technology. I talked about how I make use of student assessment videos, but I tried something new in this presentation. It worked well, for the most part, and I wanted to get down some of the details.

Because it was about accessible technology, I wanted to focus on how seeing students work through a problem helps me identify student needs that aren’t apparent in the final product (of a homework assignment or exam, for example). I wanted to show how watching a student work, through a video, can really show things that you, as an instructor, can give useful feedback on. The problem that I faced as I prepared the talk was that often, when showing such videos in a presentation, audience members don’t focus on the pedagogical question but rather they focus on the physics problem and try to solve it along with the student. Because I really wanted my audience to focus on the process, I was trying to think about how to change that dynamic.

I had an idea, but I thought it might not go very well. I wondered if an analogy might help, something that got the process point across but didn’t have a physics problem for them to get caught up in. I was concerned that folks would be frustrated with a non-physics example. I was worried the analogy wouldn’t be strong enough. But I thought I’d give it a try.

The analogy I used was art, specifically drawing. I have a great app on my phone that captures all the pen strokes during the creation of an image. I’ve been trying to get better at drawing over the last few years, so I use the app a lot. The video creation part is something I hadn’t really paid attention to, but I realized it might work well for this analogy. Essentially I planned to have a conversation about the difference between looking at a final product and watching its creation. I hoped to then talk about how those differences manifest when talking about physics. It actually went pretty well!

Here’s the final product I showed (I drew it for a friend’s birthday who’s a big soccer fan):3c827807-7c0c-4b13-922f-247d6cf13974

Yes, I know, I suck, get past it. I showed them this and asked them to critique it. One said they liked how I used color to indicate motion (something I hadn’t done consciously!), another talked about the perspective involved. Then I showed them this:

(clicking through takes you to a public google photo video page, hopefully that’ll work for folks)

I asked what they noticed. One commented on how I used fundamental shapes to block things to begin. I pointed out how I spent a ton of time on one hand, but very little on another and how I put likely way too much time and effort into the detail of the soccer player. We talked about how you get a much better sense of me as a practitioner (and maybe as an artist, but that was secondary for this) by watching the video than by looking at just the final product.

We talked about the shapes comment is like watching a student use good fundamental approaches in a physics video. We also talked about what it means when a student spends too much time on a particular detail (something you don’t see in the final product). I shared how I had a student who was frustrated that her videos weren’t getting the same high scores as her colleagues, pointing out that she had the same work and talked about the same things. I told her that she spent equal time on everything; an indication to me that she didn’t have a firm grasp on what the important concepts were.

My favorite comment, that really connected to the accessibility focus of the session, was when someone said that in the final product they thought the goal netting looked funny but only when they saw the video did they see that it was right on the edge of the image. The final product was a white-background image placed on a white screen (just like above), but the video, during the part when I zoomed in, indicated where the boundary was. This led to a great conversation about not always being able to see the barriers that students face, especially when you only see their final product.

So, all in all, I think it went pretty well. I then pivoted to talking about physics examples and we were able to use the art analogy vocabulary throughout the conversation.

Your thoughts? Here are some starters for you:

  • This is cool, but why didn’t you also . . .
  • This is dumb, art is not physics. What you should have done instead is . . .
  • Another great analogy would be . . .
  • Did you give the finished product or the video to the birthday boy?
  • You kind of suck at drawing, why in the world would you show the world that?
  • I thought you were all about hearing student voices, this is just a silent video. How is that the same?
  • I hate it when audience members just focus on a tangential thing in presentations. My favorite example is . . .
  • You really don’t know how to use semi-colons.
Posted in screencasting, teaching | 1 Comment