De-Bueller Your Coding Questions
“Anyone?”
The most iconic character in Ferris Bueller’s Day Off isn’t the vagabond himself. Is it not his girlfriend, or Cameron, or even the two heroes working the valet.
It’s Ben Stein’s incredible portrayal of an Econ teacher so boring, he doesn’t even get a name.
Think about it — we have an immediate call-and-response reaction when anyone says the title of the film. Someone else in the room feels viscerally compelled to say it:
“Bueller? … Bueller? … Bueller?”
If you don’t remember his lecture, or if it’s just been a minute, 👏 watch 👏 it 👏 now.
Somehow, in this largely improvised monologue, Ben Stein channeled every boring teacher we’ve ever had: talking so much, trying so hard to make his lesson interactive with questions, making the questions easier and easier in the hopes that someone, ANYONE, will play in that space with him. And no one does. And yet he must trudge on, for it is his sworn duty to teach economics to (or at least say economics at) these students.
So as a teacher, when I first asked a battery of questions to a room full of students and heard crickets, it didn’t just feel like a bad lesson or a bad day— it was an identity-shaking experience. In that moment, I was Ben Stein.
I had become the beast.
But as it turns out, I am not alone. That particular style of bombing a lesson has happened to every teacher at least once. And when you reflect on it, here are some of the possible conclusions you might draw:
- I am a bad teacher.
- My students are bad students.
- This content is just too boring or difficult for students to understand.
But ultimately, these conclusions are rooted in assumptions about what your students do and do not know based on their silence, and assumptions are terrible starting places. On my Ben Stein day, I didn’t know what my students knew. That was the whole problem. So the diagnosis my instructional coach gave me, and the one that helped me pretty radically since that day was this:
My questions aren’t working. I must make them better.
Since that day, I’ve become a kind of connoisseur of bad questions. They tickle me, sure, but they’re also everywhere — including in my classroom when I’m not vigilant. And as my collection has grown, I’ve been able to sort them into a few major categories:
- Too Broad
- Leading Questions (Clever Hans)
- Too Easy
- Wrong Mode of Response
- Checking the Wrong Skill
In this post, we’ll take a look at a few questions from each category, and talk about ways to revise those questions up and make them great.
1. Too Broad
Asking big, open-ended questions can be great, especially when you want to spark a longer discussion about a complex topic. But some questions have 100 right answers, and if you’re hoping to have students recall a specific vocabulary word, 99 of those answers are unhelpful. When I’m teaching, I often need these simpler vocabulary questions to take 15 seconds. As a teacher, I know I’ve asked a question which is too broad when a student gives an answer and I want to say something like “I guess that’s correct, but it’s not really what I had in mind.”
Let’s demonstrate with an example I used in a functions lesson:
name = "Jada"def greetName(name):
return("hello " + name)greetName(name)name = "Talia"
greetName(name)
I showed this code snippet, and then asked:
What is “name”?
A student called back: “it’s a word!”
And y’all, that student was correct.
And there are countless other correct answers. Here are just a few:
- “Jada”
- “Talia”
- “A variable”
- “A string”
- “A parameter”
- “An argument”
- “A way of referring to a specific person or animal or thing”
- “Mine’s Julien!”
I got lucky and at least got an answer, but I still had to ask three or four very leading follow-up questions before I could get a student to say “variable” which was the answer I was looking for.
But more frequently, a too-broad question is met with crickets, and you’ll find yourself doing some improvisational question asking while you dance closer and closer to the question you should have asked in the first place.
Solution: Be Precise
Ask a question that gives students a sense of which world you’re operating in. I wanted students to think about variables, but I asked the question in a way that gave students no clues about my intention.
If you’re hoping to spark a discussion about the word variable, try pointing to the line where the variable is assigned and asking “What do we call these containers like name which store other pieces of information?”
If you’re hoping to have your students remember the word string, try something like “Which of the four data types we discussed yesterday is contained in the variable name?” As a bonus, you’ll notice we’re using academic language like data type and variable to cue the word string. The more you model using vocabulary, the more likely students are to discuss their own code in those same terms.
I’ve given examples about how I’ve improved my questioning around variables and strings, but the same goes for any other topic with which you’d like to have students grapple. If you want a specific type of answer, ask your question with enough clarity that your students can figure out what type of answer you want. None of the questions above is asked in such a way as to give the answer to students, but there is enough context in each question to direct student attention to the right concepts.
I spend a lot of prep and reflection time refining my too-broad questions so that we handle recall quickly and efficiently. That way, I can spend less time trying to get students to read my mind, and more time helping them read code.
2. Leading Questions (Clever Hans)
The name Clever Hans, if you’re unfamiliar, comes from the story of a horse who fooled the world into believing he could do math by tapping out answers to simple arithmetic problems with his hoof. You should absolutely read one of the longer write-ups at some point, but to summarize, the horse could answer correctly only when he could see the face and body of his examiner. Hans the horse would simply tap until his examiner’s body language shifted almost imperceptibly, and then, with that cue that he had arrived at the correct number of taps, Hans would stop.
The man training Hans the horse wasn’t a con-man. He legitimately believed his horse was learning math, and even after researchers finally debunked the horse’s skillset, the proud papa kept touring with Hans, showing off his arithmetic.
But as teachers, we can’t be proud of a pony show — we need be sure our students genuinely understand at the depth we think they do. To that end, we should constantly ask ourselves, “Am I unconsciously signaling my students?”
This misstep comes in degrees, and happens most often when you want students to make a logical connection, but haven’t figured out what breadcrumbs they’ll need to do so. Here’s an example I saw recently:
“So if I remove this print statement, what’s going to change? Is it still going to print the same thing?”
Before you ask, yes, the tone of this question was exactly as you imagine it — based on tone alone, the only viable answer was no.
I think that as teachers, we envision this as a form of a reductio ad absurdum argument, laying bare the absurdity of one choice to make the other more obvious. But what actually happens is that we train our students to attend to the tone and phrasing of our question rather than the substance of it.
In my own practice, I realized I had a habit of Clever Hans signaling on the day I asked my student Alex to explain her answer to a precalculus question. Instead of explaining her answer, she changed it. I realized I’d fallen into the habit of only asking for justification for incorrect answers, so students knew that if I asked them to explain how they knew something, that it must be wrong.
The Solution: Invert Everything
Leading questions can come based on both the wording and framing of your question, and from your tone or body language, and it’s usually unintentional on both the teacher and students’ parts. But you can fix your dependency on Clever Hans questioning by inverting everything.
First, invert the environment: Stand in the back of the room as you ask a question. Have students project their answer to their classmates instead of to you. While you listen to an answer, survey the other students in the room instead of locking eyes with the student who is talking. Build a habit of asking for further explanation as a reflex, responding always with “How could we check that?” or “What makes you say that?” regardless of whether a student’s answer is right or wrong.
Second, invert the question: In the example above, the question makes the answer seem entirely obvious. But if you really want students to be thinking about the connections between print statements and terminal outputs, then odds are they haven’t internalized that connection yet. So flip the question; start with that obvious piece, and ask students to trace it to its less-obvious counterpart.
The revised question would sound more like “So if we no longer needed this statement to print out, which line of code should we remove?”
You have to make space for wrong answers in order for the right ones to matter.
3. Too Easy
This brand of question is most tempting when you feel like your students are struggling.
The time I remember this coming up in my own practice, I was midway through a walkthrough of a barebones Model-View-Controller application. About 30 minutes in, I started asking a series of successive questions that no one could answer, and though I made each one easier than the last, no one was willing to venture even a guess. On the fly, I thought, “these students need a win, and I’ve been talking a lot — let’s break this up with a question I’m 100% certain everyone in this room knows the answer to.”
And that’s when I said to a room full of high school juniors:
What’s 3 plus 4?
Crickets.
I’m really sad that I have to admit what happened next.
I was so frustrated by this point that I slipped into sarcasm, which I now more firmly and clearly believe is never appropriate. I asked, “You mean to tell me you all don’t know what 3 plus 4 is? Seriously?” Thank goodness for honest, blunt students, because Justin looked back at me and said “No, we know it. But it sounded like a trick.”
And then something clicked — I had just posed a question that was all risk, no reward. There’s no glory in getting 3 + 4
right. You might even risk appearing overly eager about something that isn’t interesting. But getting it wrong? Disaster.
When I ask a question that’s too easy, silence is (ironically) the smartest possible student response.
I think there might even be more nuance to the underlying cause of too-easy silence — there’s probably something to be said about how the simple addition skill here is so far out of scope with the rest of the lesson, and students know that. Students anticipate the cognitive burden of switching contexts from server-side scripting to simple addition, and they’re refusing to be distracted from their main goal of mastery the lesson objective.
Students shouldn’t have to context-switch to content they already know just to answer a question that will make me feel better about my poorly designed lesson.
The Solution: Plan Your Questions
At the end of the day, questions like “What is 3 plus 4?” aren’t ever questions that were carefully, lovingly considered in your lesson plans. We make the mistake of asking too-easy questions because our gut tells us in the moment that the lesson isn’t working, that we’re losing our students, and we have to do whatever it takes to draw them back in. This gut feeling is spot on, but what it calls for isn’t an on-the-fly scramble for some student voice; it calls for us to anticipate these moments in our planning.
The temptation of too-easy questions has to be addressed in two stages:
- In the moment, I need a way to deal with the disengagement or fatigue I’m sensing in the room. The immediate fix is never perfect; it’s very, very difficult to come up with a meaningful question on the fly. But I’ve actually found a lot of freedom and mutual respect in being transparent with students about this, even if just by saying something like “I want to ask a question about functions, but I’m struggling to word it well. Let’s cut to the mini-challenge coming up and I’ll try to see if I can figure out what help you need as I watch you code.”
- In preparation for the next day, I need to look at my plans and confirm that I have thoughtfully crafted questions for every major new concept I hope to introduce to my students. Since I’ve publicly apologized to students for not having a question ready today, I’m all the more motivated and determined to make sure that the questions in tomorrow’s lesson are wonderful.
A too-easy question is almost always the result of poor planning, and planning good questions is a sacred practice. Make time for it.
4. Wrong Mode of Response
Sometimes a great question loses its impact even though it’s actually a great question. Here are some extreme examples:
“Now on your paper, write three complete sentences explaining which data type this variable contains, and how you knew. You have three minutes.”
“Now if I want to capture user input in a variable, what should I write next? Just shout it out.”
In the first question, the word “string” probably doesn’t need to be written down, you probably don’t need three sentences to do it, and in a 45-minute class period, that’s probably not a valuable use of three of those precious minutes.
On the other hand, the second question probes at a useful skill and leverages some important vocabulary. But if it’s presented as a “shout it out” task, there are two equally unproductive possibilities — either only one student shouts it out, in which case, only one student gets to practice this skill, or many students call it out, and then it’s on you (and on each of your students) to make sense of the cacophony. This is the question that would benefit from some dedicated time for students to write it out on their own or discuss with a partner.
The Solution: Vet The Response Type
When you select a mode of response for your students for a given question, examine that response type against two key priorities:
- 100% of students should produce an answer (even if only in their heads).
- Students should be given the time and space necessary to produce an answer.
With that in mind, some modes of response (including “just call it out!” and “any volunteers?”) simply don’t hold up. There’s no way for one student to call out without disrupting the thought process of everyone else. But here are some standbys that I’ve found to be super high-leverage.
- Think, don’t say: When asking a recall question, I ask students hold an answer in their head. Once I know everyone is thinking of an answer, I have them chant it to me in unison.
- Thumbs up when you have an answer: When asking for predictions, I’ll say “thumbs up when you have your prediction ready!” Then I can call on anyone. It’s essentially a variation of cold-calling that requires all students to be ready to share without the stress of calling on someone who hasn’t finished processing yet.
- Think — pair — warm call: When asking for explanations, justifications, and other more complex sense-making, it almost always works better to give students the space and privacy necessary to struggle with these concepts in small groups. Then I can eavesdrop and prepare some warm calls, being strategic about which perspectives get elevated to the whole class.
These three questioning tactics (one for recall, one for predictions, and one for synthesis and sense-making) have become central to my teaching practice.
5. Checking the Wrong Skill
The last category of bad question in my collection simply checks the wrong skill. Here’s an example, which was asked in a lesson about conditional logic:
“If a password is exactly 12 characters long, and each character can be a-z, A-Z, or 1–9, how many total possible password combinations are there?”
In a combinatorics class, this is actually probably the start of a really interesting series of questions. We could compare how adding in special characters makes a password more secure, we could talk about whether requiring special characters or simply requiring more characters is a better adjustment, and overall the skill computing possible combinations becomes incidental to the larger questions of password security.
But this lesson wasn’t about combinatorics, nor was it about password security. The objective of this lesson was for students to understand how a program could accept your password change (if you re-entered your current password correctly) or reject it using conditional statements.
It’s easy to fall into the trap of thinking that all question rigor is good rigor, but that’s not actually the case. Especially when time is of the essence in a 45-minute class period, we must be judicious about how we direct our students’ time and attention.
The Solution: Punt Out-of-Scope Questions to Stretch Activities
The question about combinatorics isn’t bad. It’s just not at all something that 100% of your students need to focus on in order to master the day’s objective.
Take these out-of-scope questions and repackage them as the challenge portions of labs or homework — at Upperline Code, we call them stretch activities. They aren’t required, and there are no extra points for doing them, but many students still choose to do them for the mere glory of having solved something hard. In fact, I’d argue that the primary benefit of stretch activities is that they don’t have any extrinsic motivators attached to them.
Some Warnings
Ultimately, this is a list of DON’Ts, and while I stand by it, I also recognize that a list of DON’Ts serves a very different purpose than a list of DOs. It’s so helpful to have a lens for these five types of bad questions so you can spot them in your own practice, but eliminating these types of questions in your teaching is not a sufficient condition to lead to deep student understanding. So here are a few warnings for you, the user.
Warning 1: These Questions Aren’t Enough.
I try to reserve between 75–80% of my class days for student work time and project creation. That means that for one day of direct instruction, I might have 3–4 subsequent days of student practice. Simply asking questions doesn’t make your classroom student-led. You have to relinquish control.
Warning 2: Are Your Questions Inclusive?
This lesson was about the questioning tactics, not about the question content. If you’ve crafted a really powerful explanation of classes and objects that relies on deep knowledge of Dungeons and Dragons style RPGs, then you’ve alienated anyone in your audience who hasn’t played those types of games. If you make all your functions questions about calculating interest rates, you’ve made your class a better place for math-loving students (who likely already felt at home) and a scarier place for anyone who didn’t love their precalculus class. There’s a place in computer science for niche interests, but if you aren’t providing lots of choice, balancing out every video game example with a book or a TV show, and if you aren’t making as much room for art and design as you do for math, then you’re probably doubling down on barriers to entry and barriers to interest that you students are really tired of facing.
It is our obligation to ask great questions that all our students can answer.
TL;DR (the takeaway)
In a week of 45-minute classes, I tend to spend only about 1/5 of that time in direct instruction, which means we really don’t have time to waste on my ineffective questions. The time it takes me to plan excellent questions helps keep my bumbling to a minimum. It maximizes the time reserved for students to take on challenges, struggle with new concepts, and build divergent projects that make them proud.
I used to think the skill to work on was coming up with excellent questions on the fly. Now I know that planning the exact questions students will need is a clear mark of a master teacher.