Answers.Body: <p>If you are willing to switch to Java and also willing to do a bit of work upfront preparing (or finding) scenarios, then I recommend that you look at <a href="https://greenfoot.org" rel="nofollow noreferrer">Greenfoot</a>. It is a graphical framework for programming in Java that gives students a lot of feedback on their programs and includes an integrated development environment as well as the graphics screen. </p>
  
  <p>Along with Greenfoot, the system, there is a teacher's forum that provides support but also contributed scenarios that anyone can use. See <a href="https://greenroom.greenfoot.org" rel="nofollow noreferrer">The Greenroom</a>. I have contributed a few scenarios to the system myself. </p>
  
  <p>The same people that created Greenfoot have also built BlueJay, which is a more traditional Java IDE, but also intended for novices. They also have a book that is a good introduction to programming using the Greenfoot system.</p>
  
  <p>Greenfoot requires installation on a machine currently, though they are working on a browser based system I think. You can make the scenarios as simple or as complex as you like and you can provide as much or as little scaffolding for the students as you like. Generally speaking the code behind a given scenario is open for students to see and modify. This can be a useful learning experience - reading and maybe modifying code that is more sophisticated than you can currently create. </p>
  
  <hr>
  
  <p>Note: I am an occasional contributor to Greenfoot, but not part of the development team. </p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-05-30T16:37:43.030Z
Answers.LastActivityDate: 2019-05-30T16:37:43.030Z
Answers.UserDisplayName: Buffy
Answers.Body: <p>Greenfoot is an excellent recommendation (as per @Buffy).  If you wanted to stay in the games arena (and not move onto Java), at the machine level, we introduce assembly with <a href="https://tomorrowcorporation.com/humanresourcemachine" rel="nofollow noreferrer">Human Resource Machine</a>, which the kids enjoy very much.  It's worth noting that the challenges become quite hard towards the end, but they ramp up nicely, so this works well for students who proceed and different paces.</p>
  
  <p>If you're looking for a more competitive arena, <a href="https://www.makeuseof.com/tag/best-programming-games/" rel="nofollow noreferrer">Screeps</a> has always looked promising to me, and certain types of students would find it highly motivating.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-05-30T17:08:10.123Z
Answers.LastActivityDate: 2019-05-30T17:08:10.123Z
Answers.UserDisplayName: Ben I.
Answers.Body: <p>You could try the <a href="https://www.bootstrapworld.org/" rel="nofollow noreferrer">Bootstrap</a> curriculum, the materials are free and can integrate with existing curriculum instead of being electives. A talk about the design of the program, and how to design highschool computer science curriculum in general is given <a href="https://www.youtube.com/watch?v=5c0BvOlR5gs" rel="nofollow noreferrer">here</a> by one of the Co-directors of Bootstrap, Professor Shriram Krishnamurthi from Brown University. </p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-06-09T17:51:28.667Z
Answers.LastActivityDate: 2019-06-09T17:51:28.667Z
Answers.UserDisplayName: JJbh
Answers.Body: <p>Look at Small Basic or Scratch or Alice.  All are great and have a lot of support out there.  Designed to get and keep kids interested in programming.  A little bit more advanced is Visual Studio Code with Python and the Lego EV3 extension.  Programming robots in Python.  What more could you ask for in the way of getting kids interested in programming?</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-06-27T20:40:15.283Z
Answers.LastActivityDate: 2019-06-27T20:40:15.283Z
Answers.UserDisplayName: Garth Flint
Answers.Body: <h1>Game Maker</h1>
  
  <p>Game Maker is how I developed most of my programming skills when I was that age.  It has a very user-friendly UI that has pre-generated scripts for new users.  What's great about it is that the premade scripts are made of real code that they can dive into when they get their feet wet.</p>
  
  <p>First you start by making a bullseye bounce around the room by giving it some simple premade instructions (When this thing is spawned, it moves in a random direction.  When it hits the top side of the screen, reverse its vertical direction, etc).  Then you add some interaction, like causing an action to occur when you click on it (makes a sound effect, increases point by +1, destroy the object, create new object). </p>
  
  <p>Once they get the hang of it, make a brickout game.  Teach them how to make powerups and new types of bricks.  Teach them the value of planning for any contingency by having them test their own games.  My first real, enjoyable game I made, for myself, was a Brickout game that slightly randomized the direction of the ball each time it hit the wall or paddle, took in consideration the direction of the paddle when a ball hit it so you had some control, had 5 or so powerups, 2 switch bricks that turned certain bricks solid or non-solid, and so on.  If I had free time, I was perfecting my game, trying to tighten on that one boundaries bug I found when I collected too many speed+ penalties that caused the ball to move so fast the outer bounds check didn't have time to process in a step, or work on that new idea I came up with to have a paddle on both sides of the screen for harder levels.</p>
  
  <p>Game Maker is not limited in the slightest, as it's been used to make critically acclaimed games like Hyper Light Drifter, Undertale, Nidhogg, Iji, and Risk of Rain.  Your students may recognize some of these.  I've personally enjoyed all of them.</p>
  
  <p>Nor is Game Maker overly complex.  A simple understanding of loops, events, collisions and hit-boxes are the most unintuitive things a student needs to learn.  The rest comes with persistence, which is not unlike any professional programming.</p>
  
  <p>You will definitely need to be lenient in terms of time and structure for some of the class, as it will feel closer to real programming than a program designed to imitate it (like Code Combat).  The good news is that it's so intuitive that the students who don't need your assistance will quickly advance themselves while you are busy.  Having done a few 3-hour seminars for highschool students, this is exactly what I experienced (helping 1/3 of the class personally while the rest teach themselves).  This does create a quandary for a long-term curriculum for a regular classroom, as you will have to balance keeping education open for those who want to teach themselves while keeping the pace rigid so that those who need assistance don't fall behind.  A good solution to this is by:</p>
  
  <ol>
  <li><p>Provide extra credit, up to a cap, for weekly assignments.  So they have a week to make a working concept of a game, and how fun/efficient/complex their solution is determines their grade/extra credit.  </p></li>
  <li><p>Make each weekly assignment be different in its goals, with a strict to-do list for each day.  Week 3, Day 1, create a simple AI for a moving creature.  Week 3, Day 2, modify the AI to have some interactive functions (when player gets within X Pixels, activate Attack mode).  Have a prebuilt version made for each day and go over the mechanics from the previous day, maybe even using students' examples of problems and successes.  This allows everyone to see a working foundation that you can use to show specific mechanics, while also allowing them to make something new without them getting stuck with their personal projects.</p></li>
  </ol>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-09-05T22:55:00.440Z
Answers.LastActivityDate: 2019-09-10T15:32:21.617Z
Answers.LastEditDate: 2019-09-10T15:32:21.617Z
Answers.UserDisplayName: Man_Over_Game
Body: <p>I am teaching several classes consisting of 12-15 year-olds the beginnings of programming by exposing them to <a href="https://www.playcodemonkey.com/challenges/0" rel="noreferrer">Code Monkey</a> and <a href="https://codecombat.com/play/dungeon" rel="noreferrer">Code Combat</a>. These resources successfully engage most of my students and follow a smooth progression such that most of my students are able to follow along mostly unaided. (There are significant differences in how fast different students go though the exercises, but that aside.)</p>
  
  <p>My question is about similar follow-up resources: <strong><em>Are there any resources out there</strong>, for once my students have worked their way through Code Monkey and Code Combat, that will allow them <strong>to continue developing their programming skills</strong>, without the difficulty going up too much all at once (causing them to quit), but also without stagnating at the level of Code Combat?</em></p>
  
  <p>To provide some context on what Code Monkey and Code Combat cover: some basic movement commands, basic looping, named variables, and that is pretty much it I think.</p>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2019-05-30T14:50:31.563Z
Comments.Text: Hi, and welcome to [cseducators.se]!  You've come to the right place.  Could you edit this question to include some possible goals?  (Also, for those of us who don't have Code Monkey or Code Combat accounts, can you summarize roughly what was covered in their programs?)
Comments.UserDisplayName: Ben I.
Tags: <resource-request>
Title: Are there any resources out there to continue developing my students' programming skills after Code Combat
ThreadText: # Are there any resources out there to continue developing my students' programming skills after Code Combat
  
  (Asked by: username_0 on 2019-05-30)
  
  I am teaching several classes consisting of 12-15 year-olds the beginnings of programming by exposing them to [Code Monkey](https://www.playcodemonkey.com/challenges/0) and [Code Combat](https://codecombat.com/play/dungeon). These resources successfully engage most of my students and follow a smooth progression such that most of my students are able to follow along mostly unaided. (There are significant differences in how fast different students go though the exercises, but that aside.)
  
  My question is about similar follow-up resources: ***Are there any resources out there***, for once my students have worked their way through Code Monkey and Code Combat, that will allow them **to continue developing their programming skills**, without the difficulty going up too much all at once (causing them to quit), but also without stagnating at the level of Code Combat?
  
  To provide some context on what Code Monkey and Code Combat cover: some basic movement commands, basic looping, named variables, and that is pretty much it I think.
  
  **Tags:** resource-request
  
  > **Comments:**
  > **username_1**: Hi, and welcome to [cseducators.se]!  You've come to the right place.  Could you edit this question to include some possible goals?  (Also, for those of us who don't have Code Monkey or Code Combat accounts, can you summarize roughly what was covered in their programs?)  
  
  ---
  
  ## 5 answers
  
  ### Answer by username_3 on 2019-06-09. Score: 3
  
  You could try the [Bootstrap](https://www.bootstrapworld.org/) curriculum, the materials are free and can integrate with existing curriculum instead of being electives. A talk about the design of the program, and how to design highschool computer science curriculum in general is given [here](https://www.youtube.com/watch?v=5c0BvOlR5gs) by one of the Co-directors of Bootstrap, Professor Shriram Krishnamurthi from Brown University.
  
  
  ---
  
  ### Answer by username_4 on 2019-06-27. Score: 2
  
  Look at Small Basic or Scratch or Alice. All are great and have a lot of support out there. Designed to get and keep kids interested in programming. A little bit more advanced is Visual Studio Code with Python and the Lego EV3 extension. Programming robots in Python. What more could you ask for in the way of getting kids interested in programming?
  
  
  ---
  
  ### Answer by username_5 on 2019-09-05. Score: 2
  
  # Game Maker
  
  Game Maker is how I developed most of my programming skills when I was that age. It has a very user-friendly UI that has pre-generated scripts for new users. What's great about it is that the premade scripts are made of real code that they can dive into when they get their feet wet.
  
  First you start by making a bullseye bounce around the room by giving it some simple premade instructions (When this thing is spawned, it moves in a random direction. When it hits the top side of the screen, reverse its vertical direction, etc). Then you add some interaction, like causing an action to occur when you click on it (makes a sound effect, increases point by +1, destroy the object, create new object).
  
  Once they get the hang of it, make a brickout game. Teach them how to make powerups and new types of bricks. Teach them the value of planning for any contingency by having them test their own games. My first real, enjoyable game I made, for myself, was a Brickout game that slightly randomized the direction of the ball each time it hit the wall or paddle, took in consideration the direction of the paddle when a ball hit it so you had some control, had 5 or so powerups, 2 switch bricks that turned certain bricks solid or non-solid, and so on. If I had free time, I was perfecting my game, trying to tighten on that one boundaries bug I found when I collected too many speed+ penalties that caused the ball to move so fast the outer bounds check didn't have time to process in a step, or work on that new idea I came up with to have a paddle on both sides of the screen for harder levels.
  
  Game Maker is not limited in the slightest, as it's been used to make critically acclaimed games like Hyper Light Drifter, Undertale, Nidhogg, Iji, and Risk of Rain. Your students may recognize some of these. I've personally enjoyed all of them.
  
  Nor is Game Maker overly complex. A simple understanding of loops, events, collisions and hit-boxes are the most unintuitive things a student needs to learn. The rest comes with persistence, which is not unlike any professional programming.
  
  You will definitely need to be lenient in terms of time and structure for some of the class, as it will feel closer to real programming than a program designed to imitate it (like Code Combat). The good news is that it's so intuitive that the students who don't need your assistance will quickly advance themselves while you are busy. Having done a few 3-hour seminars for highschool students, this is exactly what I experienced (helping 1/3 of the class personally while the rest teach themselves). This does create a quandary for a long-term curriculum for a regular classroom, as you will have to balance keeping education open for those who want to teach themselves while keeping the pace rigid so that those who need assistance don't fall behind. A good solution to this is by:
  
  1. Provide extra credit, up to a cap, for weekly assignments. So they have a week to make a working concept of a game, and how fun/efficient/complex their solution is determines their grade/extra credit.
  2. Make each weekly assignment be different in its goals, with a strict to-do list for each day. Week 3, Day 1, create a simple AI for a moving creature. Week 3, Day 2, modify the AI to have some interactive functions (when player gets within X Pixels, activate Attack mode). Have a prebuilt version made for each day and go over the mechanics from the previous day, maybe even using students' examples of problems and successes. This allows everyone to see a working foundation that you can use to show specific mechanics, while also allowing them to make something new without them getting stuck with their personal projects.
  
  
  ---
  
  ### Answer by username_2 on 2019-05-30. Score: 1
  
  If you are willing to switch to Java and also willing to do a bit of work upfront preparing (or finding) scenarios, then I recommend that you look at [Greenfoot](https://greenfoot.org). It is a graphical framework for programming in Java that gives students a lot of feedback on their programs and includes an integrated development environment as well as the graphics screen.
  
  Along with Greenfoot, the system, there is a teacher's forum that provides support but also contributed scenarios that anyone can use. See [The Greenroom](https://greenroom.greenfoot.org). I have contributed a few scenarios to the system myself.
  
  The same people that created Greenfoot have also built BlueJay, which is a more traditional Java IDE, but also intended for novices. They also have a book that is a good introduction to programming using the Greenfoot system.
  
  Greenfoot requires installation on a machine currently, though they are working on a browser based system I think. You can make the scenarios as simple or as complex as you like and you can provide as much or as little scaffolding for the students as you like. Generally speaking the code behind a given scenario is open for students to see and modify. This can be a useful learning experience - reading and maybe modifying code that is more sophisticated than you can currently create.
  
  ---
  
  Note: I am an occasional contributor to Greenfoot, but not part of the development team.
  
  
  ---
  
  ### Answer by username_1 on 2019-05-30. Score: 1
  
  Greenfoot is an excellent recommendation (as per @username_2). If you wanted to stay in the games arena (and not move onto Java), at the machine level, we introduce assembly with [Human Resource Machine](https://tomorrowcorporation.com/humanresourcemachine), which the kids enjoy very much. It's worth noting that the challenges become quite hard towards the end, but they ramp up nicely, so this works well for students who proceed and different paces.
  
  If you're looking for a more competitive arena, [Screeps](https://www.makeuseof.com/tag/best-programming-games/) has always looked promising to me, and certain types of students would find it highly motivating.
  
  
  ---
  
  