About the Final Project (for Teachers)
The final project is a chance for students to use all the skills they have been learning throughout the semester. Students are asked to create a series of code examples that can be used in the Minecraft world. The time frame is flexible, but you might expect students to take a few days to develop, test, and refine each bit of code. They should end up with three or four separate projects over a three-week period.
The most open-ended projects, the ones that display the most originality and creativity in design, may not be projects that use the most complex code. Some original ideas, for example, are outstanding because of the clever solutions to problems such as bringing water to crops or creating an elaborate trap for the unwary. The code itself might simply be a few blocks attached to an event handler, or code that ignites a Redstone contraption.
Conversely, other projects may not have much Minecraft building involved, or may simply display output to the screen using a Say block, but the students have solved particularly difficult programming problems, such as how to encode a painting into a series of arrays.
Some projects will feature code that has to run in a particular Minecraft world. Other types of code might only run in a flat world, or might require you to find a jungle or other type of terrain in order to run it. This is why we typically ask students to turn in a short video of their code in action so we can see it the way it was meant to run.
It’s important to step back and take a holistic view of the entire project and recognize where students did their best work. Where did they struggle the most? What are they most proud of? Then celebrate that.
We actually grade the process of students’ learning over the course of the independent project, more than the product itself. We tell our students, “You don’t judge a story by its ending,” and in fact, often the story is the most interesting part, not where you ended up (you don’t care so much that they lived happily ever after. You want to know all of the trials and tribulations that got them to that point.)
We ask our students, after they finish the project, to go back and look and remind themselves of those “a-ha moments” when they figured something out, or realized a mistake, or otherwise reached a turning point in the plot line of their solving the problem. We ask them to highlight some change in their code that represents this, and to explain briefly what that “epiphany” was. This metacognitive piece is like the “Making Of” director’s commentary on a DVD. You have the movie, then you have the commentary. The narrative is their commentary. It doesn’t take them too long to do, but it raises awareness of what they are learning while they work on these problems.
This way, we grade what is most important — the process of their learning and their mistakes and corrections, not finished code that is ultimately perfect.
Another significant way to assess whether students are doing what matters is by asking them to design projects that serve a purpose or solve a specific problem in Minecraft. Designing and programming is hard work. However, defining a problem and creating multiple iterations of solutions to test out is good learning, and a task that is accessible to kids even if they are not programmers right from the start. This also encourages students to work together and collaborate in giving each other useful feedback.
Starting to think about projects from a design standpoint can also motivate kids to learn more about programming in order to make the project for themselves. If they don’t have the skill set to code the project themselves, they may be able to team up with someone who has coding skills and is looking for a good idea (or help with the Minecraft building aspects of the project.) Learning the value of empathizing with another person or organization, identifying a need, and designing an authentic solution through continuing feedback and iteration is a skill set that is tremendously valuable in many contexts.