Ask Slashdot: How Do I Engage 5th-8th Graders In Computing?
An anonymous reader writes: I volunteer at a inner-city community after school program focused K-8th grade. Right now, due to the volunteer demographic, we spend most of our activity time in arts and crafts and homework. The 5th-8th students are getting restless with those activities. I've been asked to spice it up with some electrical wizardry. What I'd like to do is introduce the students to basic jobs skills through computers. My thoughts are that I could conduct some simple hands-on experiments with circuits, and maybe some bread boards. Ultimately, we're going to take apart a computer and put it back together. How successful this project is will dictate whether or not we will go into programming. However, whatever we do, I want the kids to obtain marketable skills. Anyone know of a curriculum I can follow? What experiences have you had with various educational computing projects?
"Look how you can get a spreadsheet to do your boring repetitious homework for you."
Table-ized A.I.
Why do the skills have to be marketable? They're middle schoolers, they should be learning the fundamentals or just having fun. Once they're interested in the subject, they can learn how to make money with it later.
5th grade : Minecraft
6th grade : Minecraft
7th grade: porn
8th grade: porn
Ultimately, we're going to take apart a computer and put it back together. How successful this project is will dictate whether or not we will go into programming.
Taking apart a computer and putting it back together means nothing in relation to programming.
TCS is a 3D game engine (free for personal/educational use) built for creating interfaces to electronic projects.
You could take some Arduino boards and wire up a 3D interface to turn LEDs on or drive motors.
Alpha version available on the website:https://hyperplaneinteractive.com
TCS and Arduino: Sensing Voltage tutorial
Launching Model Rockets with TCS
I'm a band teacher, and I've had experience teaching an electronic music class- not 100% what you're doing, but some principles will apply. If you've got a small group, you'll want each of them to have their own equipment to work with. With a bigger group, you'll probably just have to demonstrate to them.
You'll be shocked at how incapable many of them will be. It will take 5 minutes to get them to all have their breadboard sitting right side up. If you're using a computer program, it'll be ten minutes to get the computers turned on and get the right program open. I'd advise to start with something so easy, you can't even imagine how they could possibly mess it up. After the first project you should have a better idea of what else you might attempt.
I've use EJS (Easy Java Simulations) before to make quick visualizations. It's a bit more science/physics based but might be pretty neat. Like showing a rocket go the moon (and physically accurate!) http://fem.um.es/Ejs/
Another tool is vPython. It's nice because it is in python and can be neat - again, I mostly used it for physics stuff, like simulating planetary orbits, but being python, you can show these things in just a handful lines of code. It'd be a great way to crossfunctionally do science and computing. http://vpython.org/
1.) don't be an asian helicopter mother
- you are not their parents
- best way to engage most children is when they have fun taking things step by step, with fun and encouragement
- some kids want a challenge, those are eager, give them a challenge they can handle, be present, wait for the question, don't explain things they want to tackle themselves
2.)
show them how they can let their computer + learned skills work for them
- understand what they are doing in school (don't introduce partial differential equations to a 5th grader except they ask you to do so)
- explain their current topic on math with the help of excel (no VBA)
-sine, cosine tables, sine charts etc..
3.)
The computer is a tool, make it a place to toy with things
4.)
- don't be ProfX
- use your empathy
- but actually the best choice would be to empower them to tackle their current tasks, a little surplus of knowledge won't hurt
- don't present big problems, demonstrate how you can approach a - school-world-problem by breaking it down,
These are computer/programming skills: to understand a problem, breaking it up into small understandable pieces then describing the whole problem, formulate a solution approach and testing that method.
With the help of a useful tool called computer+software.
I run a computer club at our local elementary school. MIT's Scratch has been an amazing resource for teaching the kids to program. It's fun, it's graphical, and it provides a platform for teaching most major CS concepts. We did tear a computer down, but we only spent one meeting on that. I think much more than that is overkill. The kids really enjoy the programming in scratch.
Don't worry about job skill, you will bore the crap out of them with that.
Focus on exploration, discovery, and fun.
I'd suggest you look at Scratch from MIT. NoStarch Press has a nice comic book style book on Scratch that worked for my kids.
There are also good resources on JavaScript and Python for kids. Khan Academy has JavaScript tutorial that are pretty good as well.
Bad User. No biscuit!
The approach that I used, and it seemed to have worked out, for 6th grade students was to introduce them to physical computing. You need a microcontroller (Arduino, ARM, etc.) and basic sensors and output devices (LED, motor driver, LEGO interface, etc.) and you write very basic code to make things happen in the real world.
I find that this approach is more effective than over-promising and under-delivering (e.g, "you'll soon learn to make great arcade games in this class!") because the gap between writing a few lines of codes, and seeing things happen in the real world, is quite small. Kids get that. It's much more immediate and gratifying.
I strongly suggest video games related material, in particular, Unity3D, Unreal 4, or for really simple intros, Scratch. All of these examples can be used to teach programming in a very interesting way that is fun for students and gives immediate feedback and results.
Unreal 4 is pretty amazing because the "blueprint" system is a visual block/node based programming langauge that can function as a complete programming language without much concern for codes/syntax.
Unity is better for direct coding. Boo is the easiest of the supported languages to teach, and very much like python, which is the 3D industry's standard scripting language, so I often start with that, and then some students move on up to C# coding. It's really about the same but with slightly different syntax, and of course the C# is less forgiving.
Another great method, although it isn't quite a full blown game engine, is Python programming in Blender. There's an interactive command line for working with the 3D scene. The great things about programming for 3D software and game engines is that stuff can be extremely immediate and visual, so concepts can be understood quickly. For games, often you can see what's happening in your "world" by pausing the game and interactively exploring the state of things. Blender actually has a built in game engine, although it's pretty basic and limited compared to Unity or Unreal 4.
If they are young, then you needn't focus on job skills just yet. What's more important is getting them interested so they start teaching themselves and getting into the habit of independent learning. You also don't necessarily *need* to do anything with hardware, focusing on software can work just fine as a intro for students.
In conclusion, I suggest that you should be successful using anything that gives very immediate visual feedback on the state of the world (without debugging or printing/logging), and which has the "oh wow, this is fun" factor, something that grabs children's attention and triggers their imaginations.
I can say with confidence that when teaching children, grabbing their attention and making it "fun" is a huge priority. I've been teaching this stuff for almost 20 years, and the games / VFX industry is full of my students. I've taught many adults, but also many children as well. If I can help at all, or if you would ever like to talk, feel free to contact me more directly. If you like, you can email me using: questions in the domain teaching3d.com (To avoid spam I didn't directly put the exact info there, but you can piece it together I'm sure!)