31

Rubber Duck Debugging. A few years ago we bought a bunch of cheap rubber ducks. Students with questions have two options. They can either ask their neighbor or explain to the duck what they're trying to do. If the duck didn't help, then they can ask me. I've moved to a different school since then and haven't bought any ducks. I really need to buy some ...


13

Get them to line up (preferably on a wooden gym bench), then get then ask them to get into alphabetical order. You can use this to help learn names, and to introduce sorting algorithms. I could also recommend CS-unplugged, it is part of the computational thinking, so aimed at very young pupils (primary school < age 11years old), but can also be used ...


8

(You didn't say what ages your students are, so this answer is necessarily a little nonspecific. There is also an article here that you may find helpful.) First and foremost: don't expect total victory in this regard. Your students ask you because it is frustrating to be stuck, and it is perfectly natural to try to find the quickest path out of ...


8

David Levine and a few colleagues at St Bonaventure developed what is called the First Day Role Play that sounds like what you want provided that your course will have OOP elements. They have a paper on it in the ACM Digital Library, I believe. There is also a large movement in Computational Thinking that is directed mostly at youngsters to help them think ...


7

The activity that occurred to me was categorical logic puzzles where you're given a list of hints and have to figure out a set of facts using a grid. These puzzles are solved by breaking the hints down into boolean expressions and then filling in the grid. The hints are things like: Ada owns a computer but does not wear a green hat. The person who wears a ...


7

Build logic gates out of dominoes. Start off by showing this video from Numberphile in whole or in part. In it is a demonstration of how to use dominoes to model logical operations of a computer. It begins with a simulation of an AND gate and writes out its corresponding truth table. This is followed by the same process with XOR, which then allows for the ...


6

Your pupils are already be doing nested loops. foreach week { foreach weekday{ wake up clean teeth eat breakfast goto school foreach period{ goto class do lesson } go home do evening stuff } do saterday stuff do sunday stuff } What about some formulaic music. Music has a lot of ...


5

I used a card game activity to review Boolean expressions in a CS1 context. You may be able to adapt to involve more abstract propositions and more complex operators. tl;dr Students play a card game in small groups. They choose proposition and operator cards from their hands to create true or false statements. Proposition cards have text like: No one is ...


5

A fun exercise is giving the teacher directions to, say, get to and open the classroom door. Of course, the teacher must act like a computer. My engineering teacher did this and it was rather entertaining because one kid forgot to tell him to stop at one point. Another fun exercise in this vein involves having the students tell you how to make a PB&J. ...


4

Students will act according to the habits they have built up. The one they have isn't terrible, but you can work to improve it. This answer won't save you much time, initially, but if you can change the habit then everyone wins. When asked a question you need to find a way to get them to respond first, somehow. There are various possibilities. The classic ...


4

Well, you may want to do this outside. You may want to have a lot of time, and for some, you might want to have medical personnel available. To really do it as an active learning exercise, you need three student monitors, one for each loop, who will keep count and signal each iteration and the end. First suppose that the <doSomething> action is the ...


3

The best thing they can learn from you is not a memorized answer - it's the process by which you solve problems. Instead of giving them the answer, instead of telling them to go find the answer themselves, walk them through the process of solving the problem, step-by-step. It takes more of your time initially, but they'll be stronger coders over time. For ...


3

It sounds like you don't want to deflect them when they need help but would like them to become more self-directed and learn to solve the "easy" stuff themselves. One teaching technique that I have found useful for this, no matter the subject, is questioning. It is relatively easy (once you become practised with it) and allows you to help the student as ...


3

Another game that comes to mind is Nim. It has a lot of interesting variations, and I particularly enjoy the subtraction game. In the subtraction game, you start at N and two players take turns subtracting 1, 2, or 3 from the total. The goal is to force the other player to remove the last number. For example, you could play against the whole class. Let the ...


3

Let's try a rundown of some points in your question, relating them, where possible, to the system that hosts your question. (You already hinted at that system anyway, and you seem somewhat familiar with it.) Having about zero knowledge of the Learning Management System, I'll refrain from trying to connect any concepts to that specific system. Can this ...


3

I think it would be improper to give you advice on the content of your project. Your professor assigned it so that you would learn something and you will learn more by doing that part yourself. However, I think you are making a mistake by assuming that after the original instruction from your professor you can't go back for more advice. But if you just ask ...


3

Each project manager will tell you that the success of your project refers to planning. This can take some effort at first, but in the long run having a clearly defined project plan will save you time, money, and a lot of headaches once you start the project. To start creating a project plan, focus on defining the project. Define goals and targets, define ...


3

First, if you aren't taking a course, get a good book that has a lot of exercises. Use the exercises to guide your learning. Try to find a way to get some feedback on your attempts. The way you learn just about anything deeply is to get a lot of reinforcement and feedback. On the other hand, it is seldom necessary with today's languages and libraries to ...


2

You could have them act out Fizz Buzz. Players generally sit in a circle. The player designated to go first says the number "1", and each player thenceforth counts one number in turn. However, any number divisible by three is replaced by the word fizz and any divisible by five by the word buzz. Numbers divisible by both become fizz buzz. A player who ...


2

The board game "Robo Rally", published by Avalon Hill, is good for getting people to think about simple programming as well as being fun for up to 8 players. The basic idea is to navigate robots around a factory, with a limited set of instructions, such as move forwards n, rotate left/right etc. There are traps and walls, as well as other robots that you ...


2

The ice breaker used in my school is a brainstorming: Each student throws in something they know about computer science. They each say their names and what they know. It's very important to explain that it's good if some students know some things, but it's not the goal. Make absolutely sure no student feels bad that he\she doesn't know anything about cs. To ...


2

Peer Instruction materials exist for Discrete Math, for instance Cynthia Lee's Peer Instruction questions from Stanford. You may be able to adapt some of the questions to fit your needs for a HS course. To your first point, I find Peer Instruction to be an excellent balance of lecture and active learning. There is direct content delivery, but it is short, ...


2

For the introductory lesson. We use this to introduce selection (if statements), and a little bit of boolean logic. “Stand up if you have got brown hair.” “Sit down.” look around “Stand up if you have blue eyes.” … With out asking them to sit down “Stand up if you …” Address why some people are still standing, are they correct [yes], or are the seated ...


2

Think through how you debug, and try to make it as explicit as possible. Make up a check-list. When students ask you for help, quiz them about what they did regarding the items on the check-list. "Did you look up the documentation?" "Did you write up your best guess and run it, even if you thought it would fail?" "Did you look for an example of code that ...


2

I created a couple of demo programs recently which can run unattended, be explained simply, are familiar, and one can be interacted with. The first is a simple maze generation method, which draws a maze on the screen with character graphics. It does not produce ideal or optimal mazes, or use any of the recognized algorithms, just weighted random choice and ...


2

There is another model program that is designed for youngsters. CSUnplugged provides a collection of activities that don't involve actual computers but prepare young students for Computational Thinking and algorithmics. Some of the examples are surprisingly sophisticated and collectively cover, if somewhat shallowly, the range of topics that would later be ...


2

Since Logo was intended for this age group you might explore something there. My quick idea would require two or three screens with some sophisticated and time consuming simulation running on one and the kids/adults exploring simpler exercises that might (or not) build up to the one running. You can run, for example, a space filler (Sierpinski) program and ...


2

Set up a class forum for your students It's a pretty standard thing for online courses that there is some form of online many-to-many communication platform that students are required to participate in as part of their grade. I've had to do it on two or three occasions, and while I hate it, it's what takes the place of "class participation" in the brick-and-...


2

I tell my students if they want to ask me more than one question a day, I am going to start asking them two questions before I answer them. 1) What have you tried. 2) Who else have you asked. If they cannot answer those two questions, then they are not ready to have their own question answered. It makes it harder for them to get away with using you as a ...


Only top voted, non community-wiki answers of a minimum length are eligible