Ive used a variety of applications over the years for teaching coding skills to homeschool students, and I always come back to Scratch as the best way to start off. Scratch is a program for creating simple games, animations, or interactive stories. It is free, designed for 8 16 year olds, and created by MIT Media Labs.
Scratch uses drag-and-drop programming elements to allow students to understand the logic of programming without worrying about the syntax. What I love about Scratch is the visual way it shows the basic concepts, such as if then else logic. It is robust enough to create games that are fun to play, and yet simple enough that students can dive in and quickly get started.
High school students may think Scratch looks a little basic, but for anyone without previous coding experience, it really is an excellent place to start. Even parents sitting in on classes tend to love playing with Scratch and learning along with their kids.
The main website for getting started with Scratch is the MIT website. On it, you can click on Create in the navigation bar and jump right into creating Scratch games. On the Create page there are links on the right side to some tutorials to get started. You can download the Scratch file and save it on your computer to come back to it later.
There is also a downloadable version of Scratch for offline use. It runs on Mac, Windows, and Linux. If you are teaching a class, this is the way to go so that you wont need to rely on internet access.
ScratchEd is a repository of wonderful ideas for teaching Scratch. In the Resources section, there are hundreds of lesson activities broken out by grade, curriculum area, and content.
This site has several great courses on Scratch game development. The classes are free for students to sign up for, which is a wonderful option for checking things out. It also offers the option for a teacher subscription (currently $29/mo) for setting up your own lessons, managing students, and having a private sandbox.
Itch actually runs scratch inside of its website, so you dont have to download or open a separate screen to view the tutorial videos. The videos are well done and provide an explanation for the programming logic needed for the games.
EdX Scratch Course
Starting in June 2016 there is a new course on Scratch programming starting. Put together by Harvey Mudd college, this looks like it will be an excellent course. There are several other EdX courses on programming that also use Scratch, so poke around in the EdX course offerings to see if there is something to fit your needs.
Invent With Scratch
Invent With Scratch offers quite a few video tutorials on making specific types of games. After students have mastered the basic tutorials on the Scratch website, this site could be a great place to turn students lose and have do several tutorials. After doing the tutorials, it should be easy for students to come up with their own games based on the ideas that they just learned.