Facilitating a Classroom Discussion
As the news stories are presented, ask students:
- What are some of the implications of the subject of the article?
- Do you agree with the views presented?
- What ideas would you be interested in exploring further?
Your status as a teacher gives you power that you will need to use and power you will want to relinquish. At first, you may need to be quite active to build participation and get students to discuss, both agreeing and disagreeing constructively, and with some system that keeps them from all talking at once or breaking into independent conversations. But, to get them to debate with each other, and not just to you, you need eventually not to be the person who responds to each student's statement before another student can chime in. The mid-path between running the show and allowing total chaos is tricky, as all of teaching is. You will find some practical ideas in chapter 6 of Making Sense of Algebra from Heinemann Publishers. Here are a few.
- As teacher, you obviously need to retain control that is needed but, otherwise, try to participate only as much as any participant's fair share of the air time in class. At first (and at times), you will need to participate more than "your share," but keep aiming at having students do the discussing.
- Though you are not your students' peer, aim for discussing in the way you would with peers. That is, in a conversation with peers, you would not normally say "That's very good. What do other people think?" You might well say, "Oh, I never thought of that" or "I think that, too, but I heard a friend say____." You are participating in that discussion, not evaluating students' contributions.
- Show your interest in what students say. One way to express genuine interest is to be totally honest in your response, but remember to aim (over time) to respond only in your "fair share."
- You can be sure that many of the things students say will be incomplete or unclear in some way. Again, you can express genuine interest without critique just by being totally honest: "I'm not sure I understand" or "Could you say a bit more about what you mean?" or "Did you mean ____ or ____?"
- Sometimes sitting at a student desk rather than standing (or sitting) in front of the class can get students facing each other and can reduce your role as the wall off which every ball bounces. Decide, of course, what is comfortable and natural for you.
- Sometimes, recall what a student said earlier that may be more relevant now. "But wait, didn't Marta say earlier that____?" That can bring some controversy or richness and also shows that you were listening to and noticing Marta and that you're interested.
- If there's really nothing to discuss, the discussion will be boring.
- Feel free to challenge students' viewpoints and expand the debate, especially if students lean toward a collective bias. You are a participant and your ideas count, too. But remember you are one nth of the class. Don't let your automatic power as a teacher dominate more than you absolutely need in order to maintain order.
- Minimize rules that apply only to school and not to normal conversation.
Sensible Norms for Classroom Discussion
The last suggestion was "Minimize rules that apply only to school and not to normal conversation," but this is a classroom with large numbers of people and so not quite a "normal" conversation. Some norms, all pretty obvious, are useful. Use or ignore the following ideas.
- We want to hear from as many people as possible. (It may make sense for students to raise their hands when they have something to say, and a facilitator - teacher or student - to write down students' names in order on the board. The students then know what order in which to speak, don't have to keep their hands raised, and the facilitator doesn't have to interrupt to call on people. In this case, it might also help to have a special sign students can make for when they would urgently like to respond to a comment, though this should be used sparingly.)
- We will be discussing sensitive topics; we should treat all contributions with respect. We also know that people's views can change or may not come across as they intended, so we won't jump to conclusions about people's views from their short contributions here.
- We want to keep a spirit of inquiry during discussion; this is not the time to insist on being "right."
- We want to acknowledge each other's contributions and speak to each other, addressing each other by name.
You may want to ask students periodically what they think might help the discussions.
Other Ways to Engage Students in Meaningful Discussion
This list was generated by some of our field test teachers in New York.
- Think (give a moment to think first), pair (let students talk with one other student before being asked to speak publicly), share (with the whole class)
- Encourage leadership (ask the most vocal participants, at a discreet time, what they think might encourage others to speak more and how they might support the learning community)
- Look up Danielson's "accountable talk" and adapt ideas for yourself
- Have students role play: "Ok, you're a Google executive and you're a privacy advocate — argue your side of the data collection debate"
Engaging Students in Building Algorithms Offline
Periodically, the curriculum will ask students to develop an algorithm for a task and then build it in Snap!. Other times, you may opt to focus on building an algorithm offline before students dive into coding it Snap!. Either way, working through the process outside of Snap! supports algorithmic thinking and collaboration and also helps to prepare students both for the language that appears on the AP CSP Exam and for coding in other programming languages.
Note that we do not suggest teaching pseudocode. It can be useful to think about an algorithm in general terms, in plain English, but "pseudocode" tries to have it both ways, being both informal and sufficiently precise to translate directly to a programming language. For example, one step in the algorithm for Quicksort is to choose a value from among the values being sorted that you have reason to hope will be near the median, so that the two partitions you generate will be about the same size. (Don't get hung up on the details if you're not familiar with Quicksort.) Beginners especially will be tempted to write down "Find the median value," not realizing that you can't do that without having the data already sorted!
There's a reason why we don't program in English. In order to develop an algorithm in any detail, you have to pay attention to the "affordances" of a particular programming language: what's easy to do in that language. And the language doesn't let you handwave; good ones, for example, don't have the equivalent of pronouns, which create ambiguity in human speech.
For example, on the Unit 2 Lab 1 page, Developing a Number Guessing Game with Script Variables
, you may choose to explore the concept of a binary search algorithm and to develop an algorithm offline before even opening Snap!. Some teachers have used this approach:
In both of the in-person Number Guessing Game and the Guess My Word games, be animated about the halving process after each clue.
- First, play a round or two of the Number Guessing Game in small groups or as a class.
- Then, play a round of 'Guess My Word.' One person selects a (perhaps random) word from a dictionary, and the other person tries to find that word in the dictionary by selecting a word about halfway through the possibilities left and asking if the chosen word is before or after.
Then, have a class discussion:
Emphasize how the previous guess becomes the new upper bound or lower bound for the new range of possibilities.
- How were we making our guesses?
- What did we do with the information received (such as "no, the number I'm thinking of is lower", or "no, my word comes after that")?
- Then introduce the idea of writing out an algorithm in regular words (e.g. "prompt the user to pick a number within the range"). Provide chart paper to each group if available.
- Encourage students to record the bounds of the range and the number guessed on paper in a new row of a table to help keep track of their algorithm-testing process and to communicate their progress with their group-mates.
- Now ask students to write instructions for the computer. Their syntax will likely mimic the programming language(s) with which they are most familiar (e.g. Snap!), but they should not be held to this as a constraint.
- As the very last step, they can code the algorithm in Snap!. If all goes well, the time spent programming in Snap! will be significantly less than the time spent building the algorithm offline as the majority of the debugging will already have been done on paper.
Having said that, bear in mind that this is nothing like how experienced programmers work. They do their thinking directly in a programming language. It's a little like learning a foreign language; at first you think in English (or whatever your native language is) and laboriously translate in your head before speaking. But there comes a point, maybe a year into immersion in the language, at which you find that you are suddenly thinking directly in the foreign language. This whole elaborate "design the algorithm in English" process is just for beginners.