Minecraft + Raspberry Pi = Coding Craziness

Through a series of hands on exploration, experimenting, prototyping, and building up our skill sets students of all ages will move their skills from beginner to intermediate levels.
This class is designed to introduce Raspberry Pi to students. Additionally, students will learn how to code within the Minecraft environment to do some pretty amazing projects such as:


-Minecraft Coding Basics
-Tracking Player Movement
-Build Anything Automatically
-Adding Physical Computing like
lighting up LEDs

 

The sky is the limit with the coding possibilities. Students will receive their own $150 Raspberry Pi kit as part of this class.

 
Screen Shot 2017-12-30 at 8.07.02 AM.png

Skill Development

This course is designed to help students learn how to use the coding language Python to communicate to hardware(Raspberry Pi) and software(Minecraft, Scratch, etc.) to create scripts that change how things operate.

In order to make life easier for students a few key things are helpful to make sure students have the success they need.

1. Typing - we will be typing in lots of code. The more efficient a student is at typing the more productive they will be programming. If you are not a great typer typer, then don't worry, but realize it will just take longer to get things done.

2. Attention to details - programming is all about communication. Certain commands require proper spelling and paying attention to detail like uppercase and lowercase. When we program it will be important to check your work and make sure you have not typed any mistakes.

3. Patience - learning to program takes time. It is not an overnight success story. Be patient. Be thoughtful. Be focused. And most importantly, think through the commands so overtime you can begin to see how the Python language works.

Screen Shot 2017-12-30 at 8.13.40 AM.png

Code Academy

This program offers many great tutorials in coding and programming. Sign up and take the Learn Python course if you would like a head start in how Python language operates.

Course Rationale

Rationale: Why Python?

Python programming is a great beginner language to learn how to code and program. Not only is it easy to learn and grasp, but in the case of the Raspberry Pi we can teach kids how to code using Minecraft. We all know how much kids enjoy Minecraft. We are able to intertwine something kids are familiar with(Minecraft) and merge it with a coding language that could be brand new for them.

Python is easy to read. Python is easy to use. Python is easy to learn. There are so many resources online to find how to do anything your heart desires. The language flows very smooth and is not as difficult as some other languages when starting out. We can write shorter programs to do powerful work compared to other languages.

In Demand Language

The latest research shows that Python is the second most in demand programming languages of 2018. We are not just coding for the sake of coding. We are teaching coding that is being used in the workforce so we are developing the next wave of programmers.

Why learn to code?

  1. It is still a high demand job skill in the marketplace. I understand all the worries that this won't always be the case, but as of now it is a very favorable skill depending on what job sector you are seeking.
  2. It can be a wonderful hobby that could lead to extra income. If you learn how to code, then you can create anything you want when it comes to computers, apps, and the internet. This can be exciting as a hobby to be an artist of a language to create art. Additionally, sometimes this hobby can lead to side gigs, freelance gigs, and an extra dose of income which I am sure we could all use from time to time.
  3. Great resume builder. This is something I am working to enhance on my own resume. I want to move my coding skills to move beyond the "enough to be dangerous". I want to really be able to do great work. Showcasing your work and art looks good on a resume. 
  4. It is important to understand how. Technology is moving faster and faster. If nothing else, I always think it is important to understand how things work. Being a home owner I continue to learn more about wiring electricity, plumbing, and basic work in my house to help me save costs and push my own learning. Code is another element to our daily lives as more products are being intertwined into smart products. Sometimes you should just have a basic understanding just to be sure you stay competent.

Class Format

This class is held at my nonprofit. Each day is a 90 minute class. If we don't complete the required tasks, then students will continue to work from home. They all own their own kits and materials so they can continue to work through the material on their own. Any questions or sticking points they can bring to the next class or join office hours. The goal is to empower them while I have them in class. We have grades 3-12 in the class which is very exciting so I am pumped to see what develops.

State Standards

In the state of Iowa, we have some promising changes coming in education in the field of computer science.

According to this report

The goal of SF 274 is that by July 1, 2019, every elementary school will offer instruction in the fundamentals of computer science; every middle school will offer exploratory computer science; and every high school will offer at least one high-quality computer science course.

It is important we start to teach students and the community at large the foundations of computer science. Computer science is more than coding, but it does play an important role.

If you are interested in learning more about the computer science standards crafted by ISTE, then please check them out to gain a better understanding. Also, everything is based on the work created and developed by CSTA. Here are their standards and framework.

Course 1

The backbone of this course will be using the book, Adventures in Minecraft Adventures. Typically, we would not follow a book per se, but this book is amazing, provides excellent explanations, and allows students to do further learning at home in an easy and concise manner.

Screen Shot 2018-02-01 at 3.51.14 PM.png

However, not all projects and challenges are from the book. This will require students to begin to develop computer science skills built upon the framework. Additional resources and challenges are being created to supplement the learning and meeting the needs for all learners.

Troubleshooting Tips

Day 1: Intro to Raspberry Pi and Python

Slidedeck

  • Welcome and Introduction
  • Establishing Class Norms
  • Unboxing of materials
    • Explanation of materials
    • How to wire and setup
  • CHALLENGE - take it all apart and reassemble on your own
  • CREATE a save folder on desktop for programs
  • Python - explain coding and the language
  • Open up Minecraft and Explore
    • Give time for free play

Come to class with the following created in Minecraft

  • In your Minecraft World create and design at least three locations. These locations can be as simple as creating a house, making a farm, castle, etc.
  • For those that are new to Minecraft here are the basic controls
 Credit for this graphic goes to @craigargh arghbox.wordpress.com

Credit for this graphic goes to @craigargh arghbox.wordpress.com

Day 2: Intro to Python Coding

  • PROGRAM 1 = Hello World
  • Program 2: Print Location
    • TASK CARD
      • Understand how Python coding communicates to Minecraft and back to Python
      • Understanding the x,y,z grid of Minecraft for future projects
  • Program 3: Print Coordinates in Minecraft Chat
    • TASK CARD
      • Understand how Python coding communicates to Minecraft to display data in the game
      • Understand how we can achieve results in different ways
      • Begin to see patterns in the coding
  • Program 4: Creating a Game Loop
    • TASK CARD
      • Understand that almost every program you write will contain a game loop so it will continue to run while you play the game
      • Understand the concept behind an infinite loop: a loop that never ends and goes on for infinity or until you stop the loop( press CTRL+C or Restart Python Shell.
      • Understand the importance of indenting in coding in Python
  • Program 5: Fall From Sky
    • TASK CARD
      • Understand how to manipulate your character by changing code
      • Understand new command of setPos
      • Begin to interact with the game by writing code
  • Program 6: Teleportation Challenge
    • TASK CARD
      • Understand the importance of using #comments to keep code organized
      • Understand how to interact with the world(students have already built three locations and now they will have to apply GPS concepts from previous lessons to this coding)

Day 3: Manipulating objects and understand simple game mechanics

  • Students will continue to work through the programs 1-6 from the previous class at their own pace. Each students works at the pace that works for them. This guide is a basic pacing for students to realize where they should be from week to week. 
  • Program 7: Teleportation Tour Part 2: Decision Making
  • Program 8: Arena Game Part 1
  • Program 9: Rent Part 2

Day 4: Coding Blocks

In this class we will start off by reviewing what we have learned so far.

  • What patterns have we noticed in our coding?
  • What key details are important?
  • What have you discovered on your own?

We will then begin to explore how to code to manipulate blocks which will lead to creating structures, arenas, and more in the world much faster than building block by block. This will set us up to create some games within Minecraft.

Minecraft Block ID List

    •