<p>This is an activity we typically do when learning about algorithms at the beginning of the year, but it's fun and more advanced students will hopefully do a better job at it.</p>

<p><strong>Part One</strong>: One volunteer comes to the front of the class. She sees a simple drawing on a piece of paper of several shapes (triangle, square, circle in one example) next to each other with slight spaces in between them. Everyone else in class has merely a blank sheet. Her task is to get them to reproduce what only she sees. The catch is that everyone else in class has to think like a computer and make no assumptions. Saying "draw a circle" or "make a line" won't accomplish the task. (Side note: this could be a great way to differentiate imperative and declarative languages, but that's a separate topic.) Computers need to be told to put pen to paper, lift pen, etc.</p>

<p><strong>Part Two</strong>: A different volunteer comes to the front of the room. The task is reversed. Everyone else has a drawing in front of them, and they need to communicate with the volunteer to get her to draw it properly on the whiteboard in the front of the room. The same rules apply. Classic "bugs" that come up here are not instructing the student to take the cap off the pen and not having her lift her pen correctly to complete the drawing, which is typically a stick figure with a word bubble message. </p>

<p>Both activities are engaging, and do give a number of opportunities to step in and talk about assumptions we as humans make and about abstractions that we may take for granted, like "draw a shape."</p>

<p>I got this idea from my time taking CS50 and being trained to teach CS50 AP. You can see this activity demonstrated at Harvard <a href="https://youtu.be/l76Cz8RLO54?t=21m26s" rel="nofollow noreferrer">here</a>.</p>

<p>Also, there's always the classic "Peanut Butter and Jelly Sandwich" activity although this one is hard to do at the last minute. Watch the CS50 at Yale demo <a href="https://youtu.be/UuFWYOnHwGM?t=12m49s" rel="nofollow noreferrer">here</a>.</p>

CC BY-SA 3.0
2017-06-02T06:52:14.513Z
2017-06-02T08:15:35.060Z
2017-06-02T08:15:35.060Z
Peter
<p>I have a load of bags of matchboxes (I bought like 1,000 plain white ones from Amazon). Each bag has about 16 matchboxes, and each one has letters drawn on to it. They can just grab a bag for each pair of kids and demonstrate searching and sorting, really easily. </p>

<p>One day I must write up my brown box computer somewhere - great programming tool without computers!</p>

CC BY-SA 3.0
2017-06-06T17:04:36.260Z
"each bag is about 16'? What does this mean?
Ben I.
CC BY-SA 3.0
2017-06-06T17:05:41.567Z
Each bag is about 16 (matchboxes) - sorry typing with a mental 3YO bouncing around!
Oli Howson
CC BY-SA 3.0
2017-06-06T17:11:20.660Z
Welcome to cseducators, by the way! I'm reading through the answers you are putting up, and I'm finding them very hard to understand. Sentence fragments, missing context, etc. I'm sure that the questions would appreciate it if you went back through and edited them a bit for clarity.
Ben I.
CC BY-SA 3.0
2017-06-06T16:58:50.050Z
2017-06-06T17:30:24.373Z
2017-06-06T17:30:24.373Z
Oli Howson
<p>I kept a copy of Amelia Bedilia around to read, when I was at a school where the power would go out.  If the power was out long enough, we would do pseudocode algorithms, or something of that sort until the power turned back on.</p>

<p>I also had a set of identical LEGO cars and kept one set of instructions, and did sort of a network simulation to have groups build the cars by carrying instructions from the "server" (who had the one set of instructions).</p>

<p>I also keep some of what Dan Meyer calls "Tiny Games" in my back pocket, for any time that the internet is down or we can't get on computers. Not all of them are explicitly CS related, but I think the logical thinking is useful. 
 <a href="http://blog.mrmeyer.com/2013/tiny-math-games/" rel="nofollow noreferrer">http://blog.mrmeyer.com/2013/tiny-math-games/</a></p>

CC BY-SA 3.0
2017-06-16T19:32:47.350Z
What does Amelia Bedilia have to do with CS?
Ben I.
CC BY-SA 3.0
2017-06-16T20:54:48.453Z
I've done that with Dr. Seuss books. Cat & the Hat Returns is good for recursion. Too many Daves is good for arrays or lists.
Ryan Nutt
CC BY-SA 3.0
2017-06-16T19:09:02.310Z
2017-06-16T19:09:02.310Z
Lisa Hines
<p>A kind of fun one might be to have a little kit of electronic components handy - transistors, LEDs, a couple of batteries, as fits the size of your class. You can build logic gates and then use these to build, say a half-adder, or whatever, and start abstracting from there, to introduce computer architecture, or you can use it to solve some sort of simple problem, or introduce truth tables, or whatever. It's also a fairly compact thing to store for those unfortunate occasions.</p>

CC BY-SA 3.0
2017-06-17T15:52:52.710Z
2017-06-17T15:52:52.710Z
auden
<h1>Pseudocode</h1>

<p>This may not be the best solution but I thought I'd give it a go.</p>

<p>I am currently undergoing (albeit painfully) a Computer Science GCSE. I really enjoy the coding and the computer side of it, compared to things such as planning and testing. Especially documenting tests.</p>

<p>However, recently we've had a flurry of lessons where only the teacher has logged onto the computer because we were learning to write <strong>pseudocode</strong>.</p>

<p>Now, when our teacher told us that we were doing this, a collective groan rose from the class. No-one wants to be writing out how to do basic tasks, right? And yet, having now done 3 or 4 lessons on it, I feel as though it has really improved the way I look at a task and break it down.</p>

<p>So, I think teaching pseudocode can be a very helpful thing and a perfect opportunity to do so would be... you guessed it, when the computers are down!</p>

CC BY-SA 3.0
2017-06-14T21:11:07.277Z
2017-06-16T18:46:54.123Z
2017-06-16T18:46:54.123Z
caird coinheringaahing
<p>There are lots of great activities at <a href="http://csunplugged.org/" rel="noreferrer">CS Unplugged</a> that do not require a computer. Excellent activities in their own right, you don't have to wait for the days when systems are out. Well worth exploring these resources.</p>

<p>This resource is provided by the Computer Science Department at the University of Canterbury, New Zealand, and shared under Creative Commons BY-NC-SA 4.0 licence. </p>

CC BY-SA 3.0
2017-06-09T03:22:21.553Z
I'm a big fan of the error detection activity, especially for junior high students. For high school students, I might extend the example to force the students to "discover" how the trick works, rather than telling them. IIRC, there are also extension activities in the activity itself.
Kevin W.
CC BY-SA 3.0
2017-06-15T20:36:02.177Z
Don't know how I missed the error detection one. That's awesome. We do a Luhn algorithm project early in my second year course. That activity would be a really good lead in.
Ryan Nutt
CC BY-SA 3.0
2017-06-02T01:02:07.603Z
No doubt there's lots of good stuff there. I just used the binary dots as an example because that's the one that I have printed out and ready to go all year.
Ryan Nutt
CC BY-SA 3.0
2017-06-02T02:33:58.460Z
@Kapai Good answer :) You should post more around here.
Ben I.
CC BY-SA 3.0
2017-06-01T23:24:17.477Z
2017-06-01T23:24:17.477Z
Kapai
<p>Lots of things you can do via role-play, e.g. simulations of how a processor works, how the internet work, how e-mail works etc, but also playing through some scenarios or dilemmas in online safety.</p>

<p>Plenty of scope for debating broader moral and ethical issues around CS, including AI: What should Audi's programmers and managers have done? Should end-to-end encryption be available? What rules should a self-driving car be programmed to follow?</p>

<p>20 questions, or something simpler such as guess my number?</p>

<p>Lots of fun with hand-drawn graphs, e.g. minimal spanning trees, shortest paths or the travelling salesman problem.</p>

CC BY-SA 3.0
2017-06-02T08:28:22.897Z
2017-06-02T08:28:22.897Z
Miles
<p>It depends so much on what we're covering.  In principle, anything which gets them <em>doing</em> or <em>moving</em> also gets them learning.  Here are a few more ideas:</p>
<ol>
<li><p>Describe some small amount of code that could be written to the students (like, &quot;imagine we are creating a recursive method that returns the number of even numbers in our linked list&quot;, or &quot;create a method that will print the letters of a phrase scrambled by evens, and then odds, so &quot;hello, world&quot; would print &quot;hlo olel,wrd&quot;.  Ask them to come up with <em>as many test cases as they can</em> for the unwritten method in 120 seconds.  (Test cases are hard!)  Spend some time writing good student results on the board together.  (Did they test for an empty string? A null list? A singleton string?, etc...)</p>
<p>Then have them hand-code the method.</p>
</li>
<li><p>Give them some tricky code, and have them do a thorough trace-through to see if they can understand what it is doing.</p>
</li>
</ol>

CC BY-SA 3.0
2017-06-06T21:08:01.743Z
Can also be good to have each team write out the code by hand, and trade with another team to trace through and test. Then have the two teams get together and discuss their solutions.
Susan Fox
CC BY-SA 3.0
2017-06-01T21:29:10.987Z
2017-06-01T21:29:10.987Z
2020-06-18T08:36:57.023Z
Ben I.
<p>Depends on your curriculum design. <a href="http://www.bootstrapworld.org/" rel="nofollow noreferrer">Bootstrap</a> is designed with the assumption that students will (and <em>should</em>) be away from their computer some of the time, so they can think and design calmly instead of just hacking away at their keyboards. In Bootstrap, the worksheets are central to how students are encouraged to do their work, and it's why the Bootstrap:Algebra curriculum has shown really good transfer from programming to algebra skills (specifically, solving word problems). So I don't view worksheets as a nuisance to bear because the network is down; rather, they can be an integral part of the problem-solving process, asking students to do something contemplative and methodical. (Of course, you have to believe that being contemplative and methodical are actually positive attributes…)</p>

CC BY-SA 3.0
2017-06-03T01:56:09.030Z
I do a fair amount of activity with my class away from the computers entirely, so I appreciate this perspective.  I definitely believe that we foster over-dependence on the machines.
Ben I.
CC BY-SA 3.0
2017-06-03T00:43:31.590Z
2017-06-03T00:43:31.590Z
Shriram Krishnamurthi
<p>I'm guessing everyone here, high school teachers at least, have spent at least one period in the past year working with a class when you either don't have working computers or a working internet connection.</p>

<p>So what are you go to activities when the computers aren't working?</p>

<p>I've got a couple, but am curious what I'm missing.</p>

<p><strong>Worksheets</strong> - I use 'em, but I don't really like 'em. I do keep a set of worksheets printed though just in case nothing is working. They're generic enough that it really doesn't matter what topic we're on. And they work well for emergency sub plans.</p>

<p><a href="http://csunplugged.org" rel="noreferrer"><strong>CS Unplugged</strong></a> - I 've got the <a href="http://csunplugged.org/binary-numbers/" rel="noreferrer">count the dots activity</a> printed out. One set on normal sized paper for me to demo with and a dozen sets printed on business cards for students to practice with. </p>

<p><strong>Human Sorting</strong> - I line up the kids and we go over sorting algorithms. </p>

<p>I'm sure I'm missing some really good ideas. Let's hear them...</p>

CC BY-SA 3.0
2017-06-23T16:04:06.073Z
Haha, in my experience, lack of an internet connection can greatly enhance the learning experience on-computer. Especially with high-schoolers.
Robin
CC BY-SA 3.0
2017-06-01T21:29:47.487Z
I put in an answer, but the question is rather open-ended - are there some more specific lesson goals?
Ben I.
CC BY-SA 3.0
2017-06-01T21:33:39.780Z
I wasn't thinking about specific lessons. More like when you've got something planned and technology has other ideas. Guess I was thinking more generic.
Ryan Nutt
<lesson-ideas><secondary-education>
Computers are down; what's in your bag of tricks for teaching CS when they can't get on a computer?
# Computers are down; what's in your bag of tricks for teaching CS when they can't get on a computer?

(Asked by: username_0 on 2017-06-01)

I'm guessing everyone here, high school teachers at least, have spent at least one period in the past year working with a class when you either don't have working computers or a working internet connection.

So what are you go to activities when the computers aren't working?

I've got a couple, but am curious what I'm missing.

**Worksheets** - I use 'em, but I don't really like 'em. I do keep a set of worksheets printed though just in case nothing is working. They're generic enough that it really doesn't matter what topic we're on. And they work well for emergency sub plans.

[**CS Unplugged**](http://csunplugged.org) - I 've got the [count the dots activity](http://csunplugged.org/binary-numbers/) printed out. One set on normal sized paper for me to demo with and a dozen sets printed on business cards for students to practice with.

**Human Sorting** - I line up the kids and we go over sorting algorithms.

I'm sure I'm missing some really good ideas. Let's hear them...

**Tags:** lesson-ideas, secondary-education

> **Comments:**
> **username_2**: I put in an answer, but the question is rather open-ended - are there some more specific lesson goals?  
> **username_0**: I wasn't thinking about specific lessons. More like when you've got something planned and technology has other ideas. Guess I was thinking more generic.  
> **username_1**: Haha, in my experience, lack of an internet connection can greatly enhance the learning experience on-computer. Especially with high-schoolers.  

---

## 9 answers

### Answer by username_8 on 2017-06-01. Score: 10

There are lots of great activities at [CS Unplugged](http://csunplugged.org/) that do not require a computer. Excellent activities in their own right, you don't have to wait for the days when systems are out. Well worth exploring these resources.

This resource is provided by the Computer Science Department at the University of Canterbury, New Zealand, and shared under Creative Commons BY-NC-SA 4.0 licence.

> **Comments:**
> **username_0**: No doubt there's lots of good stuff there. I just used the binary dots as an example because that's the one that I have printed out and ready to go all year.  
> **username_2**: @username_8 Good answer :) You should post more around here.  
> **username_9**: I'm a big fan of the error detection activity, especially for junior high students. For high school students, I might extend the example to force the students to "discover" how the trick works, rather than telling them. IIRC, there are also extension activities in the activity itself.  
> **username_0**: Don't know how I missed the error detection one. That's awesome. We do a Luhn algorithm project early in my second year course. That activity would be a really good lead in.  

---

### Answer by username_10 on 2017-06-02. Score: 8

Lots of things you can do via role-play, e.g. simulations of how a processor works, how the internet work, how e-mail works etc, but also playing through some scenarios or dilemmas in online safety.

Plenty of scope for debating broader moral and ethical issues around CS, including AI: What should Audi's programmers and managers have done? Should end-to-end encryption be available? What rules should a self-driving car be programmed to follow?

20 questions, or something simpler such as guess my number?

Lots of fun with hand-drawn graphs, e.g. minimal spanning trees, shortest paths or the travelling salesman problem.


---

### Answer by username_2 on 2017-06-01. Score: 3

It depends so much on what we're covering. In principle, anything which gets them *doing* or *moving* also gets them learning. Here are a few more ideas:

1. Describe some small amount of code that could be written to the students (like, "imagine we are creating a recursive method that returns the number of even numbers in our linked list", or "create a method that will print the letters of a phrase scrambled by evens, and then odds, so "hello, world" would print "hlo olel,wrd". Ask them to come up with *as many test cases as they can* for the unwritten method in 120 seconds. (Test cases are hard!) Spend some time writing good student results on the board together. (Did they test for an empty string? A null list? A singleton string?, etc...)

   Then have them hand-code the method.
2. Give them some tricky code, and have them do a thorough trace-through to see if they can understand what it is doing.

> **Comments:**
> **username_11**: Can also be good to have each team write out the code by hand, and trade with another team to trace through and test. Then have the two teams get together and discuss their solutions.  

---

### Answer by username_12 on 2017-06-03. Score: 3

Depends on your curriculum design. [Bootstrap](http://www.bootstrapworld.org/) is designed with the assumption that students will (and *should*) be away from their computer some of the time, so they can think and design calmly instead of just hacking away at their keyboards. In Bootstrap, the worksheets are central to how students are encouraged to do their work, and it's why the Bootstrap:Algebra curriculum has shown really good transfer from programming to algebra skills (specifically, solving word problems). So I don't view worksheets as a nuisance to bear because the network is down; rather, they can be an integral part of the problem-solving process, asking students to do something contemplative and methodical. (Of course, you have to believe that being contemplative and methodical are actually positive attributes…)

> **Comments:**
> **username_2**: I do a fair amount of activity with my class away from the computers entirely, so I appreciate this perspective.  I definitely believe that we foster over-dependence on the machines.  

---

### Answer by username_3 on 2017-06-02. Score: 2

This is an activity we typically do when learning about algorithms at the beginning of the year, but it's fun and more advanced students will hopefully do a better job at it.

**Part One**: One volunteer comes to the front of the class. She sees a simple drawing on a piece of paper of several shapes (triangle, square, circle in one example) next to each other with slight spaces in between them. Everyone else in class has merely a blank sheet. Her task is to get them to reproduce what only she sees. The catch is that everyone else in class has to think like a computer and make no assumptions. Saying "draw a circle" or "make a line" won't accomplish the task. (Side note: this could be a great way to differentiate imperative and declarative languages, but that's a separate topic.) Computers need to be told to put pen to paper, lift pen, etc.

**Part Two**: A different volunteer comes to the front of the room. The task is reversed. Everyone else has a drawing in front of them, and they need to communicate with the volunteer to get her to draw it properly on the whiteboard in the front of the room. The same rules apply. Classic "bugs" that come up here are not instructing the student to take the cap off the pen and not having her lift her pen correctly to complete the drawing, which is typically a stick figure with a word bubble message.

Both activities are engaging, and do give a number of opportunities to step in and talk about assumptions we as humans make and about abstractions that we may take for granted, like "draw a shape."

I got this idea from my time taking CS50 and being trained to teach CS50 AP. You can see this activity demonstrated at Harvard [here](https://youtu.be/l76Cz8RLO54?t=21m26s).

Also, there's always the classic "Peanut Butter and Jelly Sandwich" activity although this one is hard to do at the last minute. Watch the CS50 at Yale demo [here](https://youtu.be/UuFWYOnHwGM?t=12m49s).


---

### Answer by username_4 on 2017-06-06. Score: 1

I have a load of bags of matchboxes (I bought like 1,000 plain white ones from Amazon). Each bag has about 16 matchboxes, and each one has letters drawn on to it. They can just grab a bag for each pair of kids and demonstrate searching and sorting, really easily.

One day I must write up my brown box computer somewhere - great programming tool without computers!

> **Comments:**
> **username_2**: "each bag is about 16'? What does this mean?  
> **username_4**: Each bag is about 16 (matchboxes) - sorry typing with a mental 3YO bouncing around!  
> **username_2**: Welcome to cseducators, by the way! I'm reading through the answers you are putting up, and I'm finding them very hard to understand. Sentence fragments, missing context, etc. I'm sure that the questions would appreciate it if you went back through and edited them a bit for clarity.  

---

### Answer by username_7 on 2017-06-14. Score: 1

# Pseudocode

This may not be the best solution but I thought I'd give it a go.

I am currently undergoing (albeit painfully) a Computer Science GCSE. I really enjoy the coding and the computer side of it, compared to things such as planning and testing. Especially documenting tests.

However, recently we've had a flurry of lessons where only the teacher has logged onto the computer because we were learning to write **pseudocode**.

Now, when our teacher told us that we were doing this, a collective groan rose from the class. No-one wants to be writing out how to do basic tasks, right? And yet, having now done 3 or 4 lessons on it, I feel as though it has really improved the way I look at a task and break it down.

So, I think teaching pseudocode can be a very helpful thing and a perfect opportunity to do so would be... you guessed it, when the computers are down!


---

### Answer by username_5 on 2017-06-16. Score: 0

I kept a copy of Amelia Bedilia around to read, when I was at a school where the power would go out. If the power was out long enough, we would do pseudocode algorithms, or something of that sort until the power turned back on.

I also had a set of identical LEGO cars and kept one set of instructions, and did sort of a network simulation to have groups build the cars by carrying instructions from the "server" (who had the one set of instructions).

I also keep some of what Dan Meyer calls "Tiny Games" in my back pocket, for any time that the internet is down or we can't get on computers. Not all of them are explicitly CS related, but I think the logical thinking is useful.
<http://blog.mrmeyer.com/2013/tiny-math-games/>

> **Comments:**
> **username_2**: What does Amelia Bedilia have to do with CS?  
> **username_0**: I've done that with Dr. Seuss books. Cat & the Hat Returns is good for recursion. Too many Daves is good for arrays or lists.  

---

### Answer by username_6 on 2017-06-17. Score: 0

A kind of fun one might be to have a little kit of electronic components handy - transistors, LEDs, a couple of batteries, as fits the size of your class. You can build logic gates and then use these to build, say a half-adder, or whatever, and start abstracting from there, to introduce computer architecture, or you can use it to solve some sort of simple problem, or introduce truth tables, or whatever. It's also a fairly compact thing to store for those unfortunate occasions.


---

