Alice and the Transition to Java
By Eric Brown

This morning a friend posted on Facebook a link to an article entitled Why Games Don’t Teach


It was an interesting article, and as always with posts such as this, the comments are often even more insightful, which is why I look forward to your responses to my posts.

The title is actually somewhat misleading, but the reading of it allowed me to reflect on some of the things I have learned in teaching introductory programming.

When I started teaching intro programming, I tried to use tools such as Logo and Karel the Robot to help the students develop an intuitive understanding of the topics we were exploring.

But I was often surprised and frustrated that after exploring while loops in Karel, for example, when we started working with while loops in Pascal, or C++, or Java, the students would often look at me as if I was explaining some completely fresh and novel idea.

I was fortunate to meet Wanda Dann at this time, who introduced me to the educational concept, mediated transfer.

Educational theorists are adamant that learning should be transferable. [7, 11, 21] That is, what is learned in one context should be employable in another context. Although we may expect transfer of learning, it does not necessarily occur “on its own.” 
A good illustration is the following anecdote[21]: A Physics professor presented and solved this problem in lecture: “A ball weighing 5 kg is dropped from the top of a building that is 100 meters high. How many seconds later does the ball hit the ground.” Then, this problem was on the next exam: “A hole in the ground is 150 meters deep. A ball weighing 7 kg is dropped into the hole. How long does it take for the ball to reach the bottom of the hole?” One student complained to the professor that the problem was unfair because “We didn’t have any hole problems!” 

Dann, Slater, Cosgrove, Culbya
I believed that students would be able to recognize the relationship between what we had learned in Karel, and what we were starting to explore in Java. That was not the case for many students. 

I needed to mediate the transfer of understanding, explicitly and intentionally link the concepts when switching from one context to another.

In subsequent postings, I will discuss how we are trying to mediate the transfer of the understanding of fundamental programming concepts into the design of the Alice 3 software, and the accompanying curriculum.