Any suggestions on teaching kids to code?

stem
education

#1

Some folks and me are thinking about using GameShell to teach our kids (8+) to learn programming.
Any one had experience in STEM education?
I did some research, what other specific tools, projects, programming languages/environment would you suggest? What’s your path to coding, any thoughts?


#2

I personally got started making games as a kid (age 7 or 8) using the default scripting language of the OS to make text adventures were the user is given a list of choices and progresses forward through the story. This concept only requires the child to know how to print out characters, store the state of the game, and run if/switch statements to check the input from the user. I used Batch on Windows to do this, but Bash or other scripting languages like Ruby or Python would work as well.

It’s also fun because once you have the concept of print, variables, and if statements the limits of the game is only your imagination. It also helps inspire looking at other parts of the language if the kid ever wants to make the game more complicated (adding in health, weapons, etc).


#3

With PocketCHIP we did courses with kids using PICO-8, and they LOVED IT! A local school ended up doing a summer program with it, and they came by and demoed their games for us, it was amazing.

Pico-8 is proprietary, but TIC-80 is available for free, and it’s FOSS (with a paid version that just adds some hardcore features). But both are great as game engines, wrapped with their own IDE, as well as a method of distribution.

– Ben


#4

Hi there!
I’m a public high school teacher in New York City and have some wild ideas about using GameShell as an educational tool.
Currently this is the first year that the high school has implemented a coding class which is teaching students about the basic fundamentals of coding. Based off of this I would like to develop curriculum for a more advanced class where students who already know how to code are taught about socio-cultural topics through looking at games as a means for understanding complex topics.
I would like to create a class that focuses on computers and culture that uses programing as a means for production. For example: Students learn about issues of gender and race (specifically in the realm of video game representation) then instead of writing an essay about the topic they create games that explore these issues and give each other feedback.

I have currently ordered a GameShell for myself to start thinking about how I can use it as an instructional tool. Over the summer, if I get approval from administration, I would love to develop a semester long curriculum.

2 things that I would like:

  1. Input from others about what this kind of curriculum should include and feedback as to how it could work.
  2. Some sort of partnership trade with GameShell developers to see if we could exchange a reduced price for a class set.

With this I would be able to create a free and open curriculum available for other teachers to use and modify as they see fit in their own classroom and other educational settings.

Nevertheless I am very excited about all of this.

-Esteban


#5

If you are wanting to focus on socio-cultural issues with programming as a tool to convey a presentation on it, the one bit of feedback I can provide is to pick a simple gaming engine and encourage that to be used for projects. Especially for game development, it’s really easy to get stuck at the implementation bit and run out of time to add content to the game, and to display something complex like socio-cultural issues instead of basic dialogue.

On a side note, is there a high demand for a socio-cultural course in the compsci field? I haven’t seen much overlap of those two fields of study, so I was a bit surprised at first at the idea of a course for it.


#6

@Estepunk, that’s an very interesting application of computer and coding education. We would love to see your curriculum.

I agree with @aewens, content is probably more important for your games, it will be great if anyone could suggest a relatively simple game engine, and a practical approach and process to develop this kind of games. I’m not sure PICO-8/TIC-80 type of game engines work well in your case, perhaps more likely to be RPG style?

Anyway, we would love to help out, you could apply for our Education Plan with your curriculum, I will see what we can do for you and the students.


#7

In terms of game engines my first suggestions would be Unity and Godot. I’d say Godot is easier to start with as it has a very simple language, GodotScript. It’s pretty similar to Python, as opposed to Unity’s C# (though Godot now supports C# also), so pretty simple to pick up. There are also a lot of built in functions to take care of the more tricky aspects (collision detection & resolution for example). But it’s hard to ignore the sheer amount of material out there for learning Unity. (Also, Godot is tiny in terms of Unity, think Godot was around 30MB as opposed to Unity’s several GB). On top of this, and it’s not a huge point, but Godot’s 2D framework is actually a 2D framework, whereas Unity’s 2D is still a full 3D framework with an orthogonal camera so is not so well optimised for 2D games.

I wouldn’t rule out PICO-8 as being genre-specific. I’m currently using Love2D as my main development framework at the moment. It’s very similar to PICO-8 (without the intentional limitations of PICO-8), but quite as visual as a full engine like Unity or Godot, which I imagine helps kids pick up what’s going on quicker. But to be honest, that’s pure speculation on my part.


#8

Thank you all so much, I’m getting really excited about all of this feedback, I too am currently learning a lot. My personal background is in Media Studies and I am particularly interested in teaching and studying video game literacy in the same way that you would use a novel or a movie to teach about greater topics. The same way that a student might write a poem about their feelings or make a video I would like to use video games as a medium for self expression. Most of my students will already have a rudimentary understanding of coding.

@aewens there is an entire field of Game Studies that focuses on the way that video games are a direct extension of cultural expression and zeitgeist. In college I took courses in the field where we were required to play World of Warcraft to learn about gender and race.
There are also some amazing people creating games that I would both like to explore with my class but also use as models for what I want my students to think about when producing work. This includes games like
Depression Quest (mental health),
Gone Home (lgbt rights),
That Dragon, Cancer (illness),
Half the Sky Movement: The Game (Women’s Rights)
This War of Mine (War, Migration)

@yong I agree we would probably go more in the direction of RPG based creation. I did check out both PICO-8 and TIC-80 which I really like and could totally see ways that they could be implemented with some work. What other programs would be compatible with the GameShell specifically that could be used for this purpose?

@mccarthy Godot seems so cool! I checked it out and would love to try and use it. DO you know if it would work specifically with the GameShell?


#9

My question was more addressed to the overlap of the study of computer science with the study of the socio-cultural. I’m aware of video games (the medium) being used as a tool for exploring those topics, but I was curious if there are existing overlaps of socio-cultural courses in the computer science field (e.g. a compsci course with a focus on socio-cultural topics, not necessarily a socio-cultural course with a focus on byproducts from the compsci field like video games).

Again, my reason for asking is because I haven’t yet seen a blending of programming and socio-cultural in the same course from my recent viewing of the courses that various colleges/universities offer in their curriculum. So I was wondering if there were precedents of this to look over or if this was something new entirely that hasn’t been done yet. If the former were the case, it’d be worthwhile looking over their approaches to see if there’s any takeaways that can assist in this endeavor.


#10

I believe Godot 3.1 will be implementing support for OpenGL ES 2.0 so should be able to run on the GameShell.

Not 100% sure though.

I’m hoping that’ll be the case as Godot is a really great engine for getting prototypes built quickly with a bit of scaffolding. Being open source is a big plus also!


#11

Godot will work, you just need to be sure that you compile godot on the GameShell itself (as opposed to compiling in on your development machine and then exporting games to GameShell).


#12

Glad to hear it! That’s great news.


#13

Ok, I’m going to ping Zep if he could make a GS build of Pico-8 along to the rPi one


#14

@aewens I’ve done a fair bit of research and have not found much along the lines of what you are suggesting. Which is pretty much what I too am suggesting. Maybe that’s why so many interesting looking games employ horrible tropes or just have bad story lines :rofl:

Nevertheless, I would like to create a course that emphasizes a variety of skills where students have to often work collaboratively according to their different set of skills. Some students are good at English & Language Arts so they will be solid writers while some other students thrive more in STEM so they will be able to take on a heavier coding and programing role in the class.

My aim is to use a variety of methods to engage students with different skills and abilities to create compelling games while also studying other games and their conventions (both from a coding perspective and a storytelling perspective)

As of right now I know that a large part of the class will be based around collaborative projects. I will only see the kids 4 times a week so I can really split up the days according to different lessons for example:
Day 1: lesson based (more sociocultural lecture and research based)
Day 2: Programing based (this class is where we really engage in STEM based programing)
Day 3: Looking and engaging with examples (this is the day that we would play and interact with games as if we were reading a book : asking leading questions, discussing, critically analyzing the game as a text)
Day 4: would be creation day, Students are encouraged to work independently or collaboratively on projects. This is mostly self directed where I would just provide basic guidance.

^that would be each week

each unit would be based on different topics:
Day 1 for example: gender, race, social class, sexuality, dis/ability, etc.
Day 2 might focus on more than one engine for programing and creating games so one starting unit could be looking at Twinery (basic Javascript) then move on to more complicated engines such as Godot or Pico-8/TIC-80.
Day 3 we would try to tackle a new “text” per unit that might be something like all of us playing Cave Story as a class, reading a book like Ready Player One, exploring Depression Quest, etc.
Day 4 is project based. This is where students combine their knowledge and complete large projects over the span of a marking period (roughly 6 weeks) they can work independently or collaboratively although collaboration is highly encouraged in order to divide tasks.

It would be a lot of work, but I have a feeling this is a class they will gladly do homework for :wink: especially if the homework is something like “beat the next 5 levels of the game we are playing and take notes so we can discuss next week”


#15

Very easy:
a) learn pascal with kids
b) learn Ruby and show C,console etc.
c) stop learning code and pay for game, scientific project or open source project

end


#16

Just came across this wonderful course on Game Development.

Students explore the design of such childhood games as Super Mario Bros., Legend of Zelda, and Portal in a quest to understand how video games themselves are implemented. Via lectures and hands-on projects, the course explores principles of 2D and 3D graphics, animation, sound, and collision detection using frameworks like Unity and LÖVE 2D, as well as languages like Lua and C#

https://cs50.github.io/games/


#17

This is the same type of games, as a YouTube series for those who are interested.


#18

I bought this to couple my sons interest in gaming, but also introduce him to the DIY spirit. I hope it will make his :brain: big.


#19

A lot of people would recommend scratch for kids and I definitely think it a worthwhile investment considering that the IT industry needs more and more coders everyday.
Teaching coding for kids from a very young age can prove to be beneficial in the future since they can actually make a sustainable living out of that very coding techniques that they learn here


#20

Do you get any feedback from Zep?
Pls. let me know if you need any help.