<div align="center"> <img width="50%" src="/img/turtle-anim.gif" class="" alt="" /> </div>
<p> <p> My last post I was talking about the fact that as teachers, our knowledge and experience is frequently trivialized. The tenor of the times is that anyone can design a course, anyone can teach, and in fact, we don't even need teachers, just videos or computer based systems. If you've ever tutored a friend, you're more than qualified.
<p> That might be a strong statement but everywhere you look you see "education" programs designed and implemented by non teachers. It seems that it's believed that teaching only involves the most superficial of transfers of information.
<p> Today, I thought I'd look at a lesson I taught the other week. How I've seen similar material presented and how my colleagues and I might treat the subject.
<p> We use <a href="http://ccl.northwestern.edu/netlogo/">NetLogo</a> in our Sophomore level intro course. It's a highly parallel version of logo. It's very visual, it's great for modeling and you can introduce deep, meaningful concepts such as parallel processing in a gentle manner.
<p> Early on the kids have to learn how to manipulate the turtles. In NetLogo you write a single program and it's run by all the turtles "at once." The image above is one of their early "experiments." Have the turtles wiggle out of the center, but when they get to an invisible border, start spinning. They do a number of variations on this theme.
<p> A solution might look like this:
<pre> ; asked in a turtle context to gospin ifelse abs xcor < 8 or abs ycor < 8 [ wiggle ] ; wiggle implementation not shown [ left 5 ] end </pre>
<p> Let's call level one just talking about the solution by looking at the program as a sequence of instructions. Specifically relating the instructions to the problem, showing how it solves it, and that's it.
<p> This is the simplest level. A book, video, or online courseware can approach teaching at this level. A non computer scientist teacher or a non teacher computer scientist could do so as well. Students might learn a bit but I wouldn't hope for much inspiration or creativity to come out of it.
<p> Let's move to level two. <p> Here we might talk about "what the turtles are doing." They're always doing something, either wiggling or spinning. This is a step in the right direction. When done right, the students start thinking about the problem in a more general sense but they're still looking at the problem as something that exists only in the world of NetLogo. They are more likely develop patterns than in level one, but it's still limited.
<p> Level three is where things get interesting. On the surface, the problem is just a nice introduction to programming turtles in NetLogo. At a deeper level, it's an opportunity to introduce the kids to State Machines. A new way of thinking about problems and problem solving.
<p> Students understand the idea of a "state." For example, in class, they're in a "seated state," maybe in a "note taking state," etc. It's easy to see that they don't know what their day will bring but they constantly make decisions based on their "state." Likewise, they can think about the turtle as in a state. It's either in a wiggling state or a spinning state and based on their situation they can either continue in their current state or transition to the other one:
<div align="center"> <img width="50%" src="/img/spin-state.png" class="" alt="" /> </div>
This opens up a new way of thinking and it's easy to see how this extends to other problems, for example, a ghost from pacman:
<div align="center"> <img width="50%" src="/img/pacman-ghost-state.png" class="" alt="" /> </div>
A good teacher thinks about working across these levels. He adjusts based on the class and looks for opportunities to develop these deeper concepts.Tweet