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.
Damn Google is hard to use:
http://pages.minot.k12.nd.us/votech/voced/electronics.htm
especially hard to scroll down and look at additional resources:
Association for Career & Technical Education
CompTIA.org
Computing Degrees & Careers
Electronic Technicians Association International
Independent Electrical Contractors
Minot Public Schools Career Development Program
North Dakota State Board for Career & Technical Education
Skills USA-VICA Career & Technical Education Website
Society of Manufacturing Engineers
5th through 8th graders are sentient creatures. They know what they like and what they don't.
Present the material to those who are willing to learn it. The rest are a lost cause.
I would suggest you teach them proper grammar, but I read your submission. Instead, I'll suggest that someone else teach them proper grammar.
teach them how to write code so they can cheat at computer games and then laugh at people. you can bring out their creativity as they try to come up with new and innovative ways to cheat. without realizing it, its a head fake.you are teaching them to code.
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/
If they're inner-city kids show them how much money they can make programming computers when they get older. You can help them visualize this with rolls for play money.
But also let them know that they have to stay out of trouble, and work hard to get there.
why don't you teach them how to do something fun like write a script that will make the computer play a tune of their own composition, or draw a picture.
neither of these are job skills... but it will open their imaginations to the concept of computer programming and representing sounds or geometric co-ordinates in numbers (which is the language of computers).
No one has a right to their *own* opinion. They have a right to the TRUTH.
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 don't want these kids taking my computer job at 1/3 my salary. Teach them art instead.
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.
Potatoes that make electricity.. small electric loops.. etc.
http://www.miniscience.com/pro...
because i really want fifth graders to be working for geek squad.
Remember kids, if you're not paying for the service, YOU ARE THE PRODUCT THAT IS BEING SOLD.
I would not base how well this project goes in order to look into programming. There are some simple programming basic things they can do on the internet already. Light bot could be a huge resource for you to get them started into programming. http://lightbot.com/hocflash.html
(1) get the 5th-8th graders to fix a broken pc. pull a few parts set it out, Good will hunting style (2.) once completed. get them to teach the younger kids how. fact. you learn more when you teach others. (3.) teach the 5th-8th graders how to code. contact minecraft and skype with a developer for 5 mins and the classroom (4.) 5th-8th graders then teach the younger kids how to code hello world (while they make minecraft mods) (5.) invite parents to bring in broken PC's which the kids will repair (6.) charge parents for fixed PC's (7.) profit!
See the value of K-8 programming by watching an interview of a 9 year old!
How can I teach my child electronics with an Arduino kit?
Start with an obvious circuit, where it's pretty clear that electricity is flowing around a *circuit*.
Battery -> switch -> light bulb -> battery
Extra credit if the switch is a knife switch where they can see the conductive pieces of metal making and breaking contact. Screw all parts down on a piece of wooden board. Be as traditional, Ben-Franklin-doing-electrical-experiments as possible. Double extra credit if you make the battery from electrolyte and electrodes. Don't use an LED, those are new-fangled semiconductors. Make *circuit* as clear as possible.
5th-8th grade might be a little late for this project. I built one of these in a first grade class, but it's stuck with me ever since.
Expand from there, Bring in little breadboards, resistors, LEDs, transistors, etc once they understand circuit, voltage, amps, and how to use a voltmeter to figure out where the electricity is flowing. And ultimately throw in a microcontroller (AVR/Arduino/etc) that they can start programming.
Transitioning from arts and crafts is another route. Something like https://www.crowdsupply.com/chibitronics/circuit-stickers might keep the arts instructors on board.
Circuits that stick together with magnets, interesting sensors, Arduino-compatible controller, web-browser-integrated programing environment, sample projects and code sharing.
The hello world starts with blinking the lights on the controller board. Get the bigger kit (the "Tesla", I think).
...will probably be immediately useful. You can start moving animated sprites around on the screen almost immediately and have them making rudimentary games. And there are tons of good videos on PyGame on YouTube.
Arduinos are easy to work with and cheap.
Blinky lights, motors,speakers, cheap RC servos.
Assuming you're not going to be teaching computer science and LR(1) grammars, determining NP complete, etc.
Don't teach theory. Hands on. Think shop class. Make something new that gets finished each session (no "let's teach them project planning skills, and how to plan and execute".. they'll get that in school with various and sundry term papers).
Most of these kids do not know how to wire a battery, pushbutton and a lightbulb together. (I have PhD EE majors at work who don't know how to do this in a practical sense.. never held a soldering iron or wire cutter in their life) Expect to spend significant time on this kind of thing.
Arduino doing color mixing with a tricolor LED
Arduinos making beeps and boops on a small speaker (not headphones.. you want something that disrupts your neighbor)
If you want fancier, simple applications that do things like time and/or sequence stuff. A Laser pointer or flashlight or webcam mounted on two RC servos as a pan/tilt mount can be a lot of fun.
Time lapse photography
Enough with the fucking computers already, sheesh. Kids did fine in the previous decades without using computers and they can do it again. It's been overplayed. We are wasting our lives 24/7 on these damn fuck mind machines. We traded manufacturing jobs for office shit computer land. When people finally get sick and tired of their lives being controlled by technology the computer bubble will burst.
It was better in the 80's and 90's when there were few computer tech's out there.
Here's a syllabus I came up with: http://jsfiddle.net/clayshanno...
I'd definitely go more for the programming vs hardware route - but that's what I'm most comfortable with. Depending on their interests there are a couple of starting programs:
Scratch - geared towards middle schoolers, teaches Java
Logo - Drawing with a turtle. Python has an implementation of it (import turtle), fun little graphics library, can be used to introduce more difficult topics gently
Alice - Also Java based - more in-depth than scratch, involves creating "scenes"
Oh, Wait ...
Sent from my ASR33 using ASCII
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!
Based on experience, you want hands on to show WHY programming. Model rockets with compute prediction and data collection and if you want hands-on programming put a UI on programs from usrockets.com
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.
You already said they want to be hands on - why not start with the physical device and then go to the code. Disassemble a PC and explain the parts. Talk about similarities and differences between a PC and a digital watch or other embedded computing device. THEN start talking about code, and how the device and code interact. Leave the OS wars for later.
Hmmm. Your ideas are intriguing to me and I wish to subscribe to your newsletter.
Taking apart a computer and programming are two orthogonal skills -- someone might be great at one and terrible at the other.
I've successfully used Basic4GL to teach basic programming, graphics, and algebra concepts to underperforming 6th graders. They really loved the exercise of drawing a spaceship first on graph paper and then on the computer using simple graphics commands. Basic4GL is great because it has built in sound, graphics, etc.
I will suggest 3 other things
1) Teach the Processing computer language. It's graphical, easy to start with, and mature.
2) Teach the Arduino. Build a simple circuit or a very simple robot with two servos. Any Arduino workshop devolves pleasantly into students tinkering with stuff.
3) Teach Python
I'll caution against Python because the text only interaction may bore them (even though I've taught this language before).
Give them some Apple ]['s, Commodore 64's, and a few TRS-80. Tell them that whoever's first to program them to do like... five different things, will win a prize!
Tell them to write a web server that runs on the Apple ][, a web browser that runs on the C64, and that they have to exchange information through the Trash-80, and the first one to do it, (on their own, no outside help!) gets a FREE iPad Mini. First runner up gets... two free iPad Mini's!
Or, better yet, take away their iPads and iPods and eBooks and uPhotos and aSsscratchers, and tell them they can have their iPad's (etc.) back when they've learned how to do something useful on the outdated hardware, since that's EXACTLY WHAT THEY WILL BE DOING THEIR ENTIRE CAREERS.
Getting kids into computers can be as simple as locking them in a closet with a box of cigars until they finish it.
Write some solid software tests. Hand them a laptop, compiler, book on programming and a book on test driven development. Don't let the child out until their program passes all tests.
Best to do this with your own child rather than any child you happen to find.
“Common sense is not so common.” — Voltaire
Try the FIRST robotics leagues... .they have a leagues for Grades K-3, grades 4-8, and high school students.
They create interesting challenges, provide good building blocks, and foster cooperation and competition. It's a great way for kids to learn (and adults to mentor): http://www.usfirst.org/roboticsprograms/fll
1.) If you have access to some unused but serviceable computers I would suggest you have the kids tear them apart and rebuild them to see how they work. Your school/district may have access to older computer you can use. Schools often refresh their equipment during the summer and this would be a good time to grab some gear that is going out of service. If not, see if there are any computer refurbishers in the area who can accommodate you. I volunteered recently with a non-profit group that was refurbishing computer to give away to students. 2.) Once you have some working computers have the kids learn how to install an operating system and learn how it interacts with the hardware and applications. I suggest some distro of Linux because it's free (no licensing worries for the school) and it allows kids to explore the system. It also have a number of free programming tools available so the kids could learn some basic programming. 3.) Python is powerful and easy to learn programming language and is included in most Linux distros. It is cross platform, so programs written in it run on Macs and Windows too (when Python is installed on those OSes). The good thing about Python is there is a lot of help available for it aimed specifically at kids. Kids like games and programming games is very popular in Python. If you need a real basic intro to programming concepts you can install Scratch. It is a visual tool designed to help young children learn basic programming concepts and they can do things with it almost immediately. There's a lot of documentation and help for both Python and Scratch. These are the "gateway drugs" to programming. *** All of the above skills are highly marketable and can lead to great careers even without college, although obviously that is always an option. Computers are everywhere and kids should learn how they work, just like kids used to fix cars in the old days. Also programming knowledge does not mean that one has to become a programmer. It would be very helpful in math and science careers, although maybe one of your kids could develop the next Minecraft.
You want to reach these keeeds? Show them how they can use technology to cheat on their school assignments.
You could try having them do some simple programming...printing their names on the screen or drawing some simple graphics. Try some of the lessons at http://www.codebymath.com perhaps.
project who can guide you is a bit off. Tap into the school districts that make up your demog and they likely have the kits that can make this go. Heck, ask someone for their NXT layer of LEGO Mindstorms if they've moved into EV3.
"Win treats sysadmins better than users. Mac treats users better than sysadmins. Linux treats everyone like sysadmins."
idiot
I haven't taken a look at it yet myself (I just found out about it yesterday), but it sounds like it might be exactly what you're looking for.
All our materials are targeted at students in 4th - 8th grades (or between the ages of 9 - 14), and are free and easy to use.
I'm a leaf on the wind. Watch how I soar.
They have some great tools, the "Frozen" code example had my wife enthralled, and she does not care much for tech stuff.
(If at first you don't succeed, do it different next time!)
my 3rd-grader is doing the khan academy CS course. he's learning processing.js, and he loves it.
I am a long time programmer. The best programming exercise I had in grade school was "How to tie a shoe".
The teacher had us write the instructions for how to tie a shoe.
Then she had someone read the instructions while she followed them with a shoe.
It was laugh out loud funny (not lol).
We learned to think in an orderly process.
You could get a raspberry pi and connected it to a video touch screen. Then you could teach a bit of programming and collaborate with the business department and make a Burger Company POS system for the kiddies to play with.
you are sat on a plank over a dunk tank full of ice water. You will be dunked if you cannot create a program to control a robot to push the timer disarm button before the dunk delay countdown time expires.
Nullius in verba
1. I brought in an old computer I had lying around
2. I asked them to draw what they thought was inside it.
3. Went over the drawings with the class.
4. Blew some minds after opening it.
5. Discussed the parts and related them to the human body as best I could.
The retention was very high when they understood how the processor was like the brain, the hard drive like long-term memory, ram like short-term. The motherboard was like the circulatory system (blood stream). Video card was like the eyes.
I used to ask, how do I engage my teachers in computing.
Honestly, in the 2010's I think the question is sill valid. Those who are interested will find egagement themselves and those who aren't won't care and you'll be wasting your time. Spend all the time and money you want, but it's extremely remote that you'll engage me in baseball.
First Robotics Lego League, Mindstorms, Arduino, Processing talking to Arduino, Create 2 from iRobot, then BeagleBone Black in High School.
For 6th-12th graders I used Turtle in Small Basic to teach programming. http://smallbasic.com/
The slow ones will have a hard time with it, but it really does open minds with the brighter kids.
Typically I'd do a lesson on the board, have them copy it. Then we'd do a minor variation. Then I'd have them do a program of their own using the same concepts.
Example: Program that prints hello
Example 2: Program that takes your name then prints Hello Name
Task: Write a program that takes your first name and last name and prints "Wow your name is Name Surname"
Another thing was Gamemaker. Although kids have a harder time grasping creativity needed to make a game. You'll find after the first 3 basic tutorials games, they'll be stuck in a rut and unable to do much by their self. (Bad thing when teaching 10 kids of various intelligent levels at the same time.)
Not sure the skill level of the kids you're working with. Mine were mostly below average, so the basics of small basic was about the max I could do with the Middle Schoolers. High Schoolers on the other could understand most of the concepts. Some even got to the point where they could write pseudo-advance programs in 1 month of hour long classes with me even though they had little interest in programming or computers.
I'm not sure how much money you have, but this should be affordable enough for your typical 20-30 seat class.
Get Minecraft, pick out a custom launcher (I recommend Technic) and design your own modpack containing at the bare minimum the mod called OpenComputers: "turtles" programmable in Lua. You can try RedLogic for when simple redstone circuits aren't enough and MineFactory Reloaded if you want to try your hand at teaching them industrial automation with programmable circuits.
I've been given home-made Arduino kits for my nephews for a few years. About 1/3 of them take an interest in it. I first tried electronics kits (555s + various CMOS chips + LEDs); these kits were cheap, but too complex and uninteresting. Arduino Nano projects are quicker + easier + more fun.
I found the CodeBender.cc web IDE to be easier for sharing projects than the Arduino native IDE.
Here's some example code: https://codebender.cc/user/max%20keiser and project details: http://guidgenerator.com/arduinoprojects.htm
Some of the projects they've built:
- simple blinking LEDs controlled by variable resistor
- "knight rider" LEDs
- music from Super Mario theme on a buzzer
- weather station (temperature + humidity) on a 1602 LCD
- ultrasonic range finder w. 1602 LCD
- pulse monitor with a 5110 LCD + buzzer
- motion alarm with a PIR sensor + buzer
- stroboscope + fan
- Pong video game on a 5110 LCD
- 4x4x4 LED cube wired on a 9x15cm PCB (takes 2-6 hours)
Recommended parts ($30-40 on eBay or Alibaba):
- Arduino Nano ATmega328 + USB cable (easier to wire than Arduino Uno, Mega, etc).
- MB102 motherboard + power supply (easier and more robust than other breadboards and batteries)
- breadboard male-male jumper wires
- male-female jumper wires (only need a few for some sensors that can't be plugged into breadboard)
- bright blue LEDs + 4.7k resistors
- 10k variable resistors + knobs
- 1602 LCD + 470 resistor
- 5110 LCD + 470
- heartbeat sensor
- peizo buzzer
- PIR motion sensor
- DHT11 temperature sensor
- HC-SR04 ultrasonic range sensor
- digital multimeter
- computer fan
- 12x12x4.3mm button switches
- 9v batteries, 2.1mm 9v plugs
- 40 pin male header strips (needed for LCDs)
- soldering iron + solder (needed for LCDs)
Simply BASIC comes to mind and it's easy to get some programs running like 'guess a number'. INPUT and PRINT are easy enough, IF .. THEN .. ELSE is nice too, GOTO is easy and we don't care whether it's morally wrong or not.
QBASIC is a bit lame (under dosbox?) but gives 320x200 256 color and 640x350 16 colors at least, with beeps (default beep is the BEEP command, then you can get height and length variations)
There might be some BASIC with better graphics, multi-platform, I don't know which one. But it's easy at least moreso than python or javascript + browser.
Robo Rally would be a great place to start teaching programming basics (i.e. programming steps and timing.)
Earliest computer/electronic experiment that really struck me as a kid (1st or 2nd grade) was 'decoding' circuits with a logic probe: we had rectangles of construction paper, half of which had two rows of hole-punched holes on opposite ends, and we taped tin foil paths between them, including bogus foil under the 'dead' holes. After making a half dozen of these each, we traded and logic probed someone else's circuits. Lots of fun!
"There are people who do not love their fellow human being, and I _hate_ people like that!" - Tom Lehrer
I suggest you do not Google "How to get 12 year olds excited."
Just don't let them get each other pregnant and you'll be well on your way.
So kind of like OP said: Your goal is to make the field marketable to the kid.
That's not what OP said. They want the kids to obtain marketable skills. And "marketable skills" are boring, while learning the fundamentals and instilling a lifelong passion for computing into young children is easier and more effective.
Not really, they're just exciting along different axes. The trick is to find the optimal vector sum between marketable and fun.
Can Students Have Too Much Tech?
"Students who gain access to a home computer between the 5th and 8th grades tend to witness a persistent decline in reading and math scores," the economists wrote, adding that license to surf the Internet was also linked to lower grades in younger children.
Start with something simple, so simple that it can be done in a minute. However it must be something with oodles of potential, something that can be hugely expanded upon. Then let the kids expand upon the base model.
I used to use spreadsheets for this. What's the simplest spreadsheet that demonstrates the principle of a spreadsheet? Add 2 numbers together. Annotate the numbers as in a real-world presentation, and put in a title. Print that. The whole thing takes a minute or two tops, and produces a "finished product".
The beauty of this is that it shows just enough of the product to stimulate interest and thinking in your audience. And it's trivial to expand upon the demonstration product endlessly, adding depth and complexity. However the initial form is simple enough for anyone to understand. That's your hook.
it's much easier and cheaper to do software than hands on things that may break and not work before you start coding.
No offense, but if you need to ask this question (and the way you are asking it) I don't think you are the right person to do this job and risk scaring them off more than engaging them. Let someone else do it. Seriously.
When I was in 7th and 8th grade I was involved with the FBLA afterschool program that taught general office computing skills like word processing, elementary database entry, spreadsheets, and networking. I also think we learned about robert's rules of order too! I had a blast and really enjoyed the freetime in the computer lab, granted it was in the mid 90's. I don't even know if FBLA is still around. = (
start simple — stroking a nail with a magnet to magnetize it; coiling a wires; then show them a relay.. it works by the principle they themselves have done by coiling wire. then build the four basic logic gates: AND, OR, NAND, NOR.. that will already take a long time. have them write-up the truth tables by toggling switches and getting the results.
then play chess with them — this will better prepare them than anything to thing clearly and logically independent of language semantics which will soon be obsolete.
2cents
j
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!)
That is all.
My thoughts are that I could conduct some simple hands-on experiments with circuits, and maybe some bread boards.
I suppose it all depends on how basic you want to go, how many students, and what your budget (if any) is and how long the course segment is going to be. When I went to middle school, in our electronics class we would have several "project days" every quarter. For example, the one I remember the best is on the first day the instructor went over basic AM radio theory, how it works, etc. And the other four days of the week (I know most schools only do three and a half days a week now) each student built a crystal radio. Granted everyone in our class WANTED to be there so we didn't have the people staring at the wall or being disruptive like today. Since this is an "after hours" class that should not a problem in your case. The copper wire might be an issue today but the diode and variable capacitor should still be pretty cheap.
Maybe instead you could play the 21st century version of "telephone". You get two people to play web server and client talking to each other while the rest of the class simulates a botnet doing a denial of service.
I taught an after-school class to kids of this age in upstate New York back in the mid-1980's. To get started I invented a game for the kids where they were part of a CPU, RAM, and instruction set. We would write some programs broken down into small operations that the "CPU" could process, and they would queue up each with their instruction for the CPU. We did things like basic math (push the 1 on the stack, push the 2 on the stack, push the + on the stack, then let the CPU pop them off and perform the calculation. They had fun, and learned how computers actually worked. We then took those lessons and started into some real programming. At that point, they understood what was going on - it was no longer "magic" to them, but something that made real sense.
"whatever we do, I want the kids to obtain marketable skills."
Really? By the time those kids are out of college, programming will be obsolete.
Don't exclude children because they happen to have a penis ?
code.org are sexist shits.
Porn.
Worked for me!
still available from the CS Ed week: http://sgd.cs.colorado.edu/wik...
Try Project GUTS. It's a great STEM program geared toward middle school students with proven results. It's based in New Mexico, but I'd still recommend reaching out to the program, even if you're not located nearby. http://www.projectguts.org/
I suggest programmable nanodrones which they can fly indoors and later outdoors to map their neighbourhoods.
I do a Mindstorms unit with my grade 4 class. The kids have a blast building the robots, doing little challenges, time trials, etc. In the mean time, they are learning about sequences, switches, loops and basic programming logic as well as how to trouble-shoot their programs. Granted the Mindstorms NXT Edu kits are not cheap. Other, cheaper (as in free) suggestions might include Scratch, or Khan Academy's JavaScript mini-courses.
In the land of the blind, the one eyed man still has no depth perception.
I think it's a mistake to more-than-basically-introduce programming to the entire student body. Maybe 1-3 out of 10 kids are probably interested enough to even pay the slightest amount of interest. The right thing to do would be to introduce the entire class to computer science for 1-2 weeks, and after that only continue with the students who remain interested. You cannot fit this into the general curriculum. You'd need to separate out those interested in the concept and only teach them. Expecting every single kid to take part in computer science is only going to alienate nearly every student - all those who will never have anything to do with IT their entire lives.
This is the problem with education, expecting to teach all kids the same subjects. I'd have killed in elementary school for a computer science program, as I knew at a very young age I wanted to be a programmer. 95% of my fellow students? Not a single shred of interest. It is wrong to not have provided me with a computer science program to let me learn. It would also have been wrong to force all students into learning it when a very small fragment of the population wants to be immersed. Until primary and secondary schools can customize the curriculum for each student, this will never work.
https://blockly-games.appspot.... - i've been programming for about 15 years and this seems like a perfectly nice introduction for kids
i use botlogic.us with good results
then move to code for lifes rapid router
all to get to mits scratch
Jeoin
First thing I will recommend is starting them off with a computer to take apart and put back together (hands on, groups of 2-3 with the help of experienced mentors) then introduce them to ohms law. From there, teach them how to read resistor bands, how to work with series and parrelell circuits on paper and a breadboard, teach them about capacitors, have them take 5 AA's, a battery pack with wires, an led and 330 ohm resistor and have them light it up. Next introduce them to the light spectrum and treat it as an entry into infrared light, electrons and photons, take an ir receiver and hook up an led to the bout pin, take a TV remote and hit a button while pointing at the receiver. There is your intro to electronics. To introduce them to programming, use some arduino uno's with the arduino environment and teach them basic c programming. After that, have them engage in other fun projects.
"Computing" is a dead end. "Computing" is for losers. The dreams of the '70s and '80s have turned to a dreary reality. There are too few high-paying jobs and those are already taken. Don't force upon kids your own delusions.
The CSunplugged project contains lots of teaching ressources that work really well with young students.
http://csunplugged.org
Give them a taste of PC gaming, then take it away by arranging for something to be broken. Provide reading materials with the solution to fix it buried behind a flood of other PC related content that would also be useful to learn.
Present the operations visually, and give them a way to visualize what thier code does.
Make all arrays/vectors visible with color coded elements based on value. Let them program and play around.
Make a 20 item slow visual of
bubble sort
insertion sort
selection sort
discuss how a person would do.
Move on to
game of life
grass, bunnies, wolves and moose on an island
10x10 maze creation and solving
solving factorization problems
converting fractions to decimal numbers
adding fractions
word search creation and solving
And other fun projects at the King of Random https://m.youtube.com/user/010...
America is swamped already by illegal migrants. Some of them started arriving in the XVII-XVIII century. We failed to protect the borders of our great, glorious nation — And yes, they overthrew us and reducted us. Nowadays, the USA is flooded with all those dirty white do-no-goodies. They walk and drive around what used to be our forests and plains, as if they were the lords of the land. And they now don't want to allow any further migration After teaching us that migration was just a natural phenomenon, after telling us that Europe is overcrowded and they needed to pursuit the Great American Dream... They want to deny that same dream to newer migrants...
Try a Rasberry Pi. It has Minecraft and the Scratch & Python languages. Should keep them engaged for a while.
EEVBlog:
An off-the-cuff Video Blog about Electronics Engineering, for engineers, hobbyists, enthusiasts, hackers and Makers
https://www.youtube.com/user/EEVblog
And the person that inspired the EEVBlog Guy to get into electronics has a _LOT_ of free materials on his site:
'Talking Electronics'
http://www.talkingelectronics.com/te_interactive_index.html
One simple path: LiveCode... already super successful in this field.
see: livecode.com http://livecode.byu.edu/
My advice is to wait til they are of age, then ask them to marry you..
I second the Lego Robotics aka Mindstorms approach. It builds on skills and experience the kids already have and adds the extra dimension of movement and control. There are existing kits and educational supplies and as a very experienced teacher friend of mine once told me. "it was the only time in my teaching experience that he had the whole class continually and completely engaged". There is something for all interests, from the mathematically inclined to the hands on concrete learners, the abstract thinkers as well as the artists and writers. Once the students have reached an advanced level they can naturally move into more advanced programming languages and onto other platforms such as Arduino's and Raspberry Pi. There are also international Robotics competitions to really get things moving. Best approach I personally saw was when I took my son to an introductory day and they built a battle bot with the task of pushing another battlebot outside a square marked in tape on the floor. Oh yes an there were girls there too just as much into it as the boys. Best moment was when my son elbowed me out of the way and said "I got this Dad!"
Thanks for the up vote requests. Seems like we're the only ones as both your posts got modded down a point. Well, failure is the best teacher. :(
And yes, I have worked in higher ed in a college of engineering for more than two decades doing outreach efforts for K-12 for more than half that time. I know what works and doesn't work. Been there, done that (both succeed and fail) and have the t-shirts. Looks like the do-more-coding crowd has more sway in this thread and on /. anymore.
P.S. I have an account here but refuse to log in after the Dice overlords screwed things up. Do stop by for interesting posts, though. Cheers!
The ultra low cost ($29) Raspberry Pi is a wonderful little computer for teaching kids programming. On raspberrypi.org, the most prolific poster of programs and projects is 12 years old.
It runs python, scratch and more.
My 10 year old grandson, on being introduced to the Pi had a simple gamewritten in python in two hours, with no help.
The Raspberry Pi was designed exactly for this purpose. You can program it in Python or Scratch, but also many other languages. In regards to programming, I spent a fair share of time with VB6, ObjectPAL, Pascal, C, Assembler, Delphi, VB.NET and Java. Except for VB6 (which is unfortunately dead) they are all cumbersome and needlessly complicated. I eventually found my home with PHP, you want to do X then the command to use it typically X. PHP is also excellently documented and as demanded by others is a marketable skill. Yes, it has shortcomings and is quirky at times, but despite its simplicity you can do a lot of awesome things...and that even without object oriented programming. Just yesterday I came across https://codecombat.com/ (might even have been from a /. article), it is a game that teaches coding skills. I didn't have time yet to evaluate if it is any good.
I agree...but I have to mention that Lego Robotics is freakishly expensive! Unless you can find a good sponsor you won't be able to get enough sets for even a small group. I looked into this for my kids and I could just not afford it.
Pre-infect a donated computer with a virus. Show them how to safely find anti-virus tools, and use it to disinfect the computer. Explain they can earn $50-$100/hr doing this to other people's computers. Even if they don't end up doing this for $$$$, it'll be good practice for when they surf incautiously/to porn sites.
Take a look at this web site. The curriculum is written by a Middle School teacher in Colorado Springs.
http://www.kidsnetsoft.com/html/home2.html
teach them the basics of the language, and tell them that they can code up any game they want, in a group of two or three, and that the pass grade is a working game. be that a simple logic game, or even more complex. This makes the course interesting, teaches logic, and and an aim at a (even if simple) working application. I held a course for university students for a week, teaching them C, and the first three days, we worked through the basics of the language, structures, variables, pointers and a good few other things, in half-hour lessons, and 1.5 hour practice sessions. last two days, they were given the task of - create a game, anything you want, but it has to work, and that will be a pass grade. All of them sucked up the info, went to practice, and all passed with flying colors, making not just functional games, but well-designed such, and had an interest in it, as it was lighthearted with focus on doing while learning. The comments afterwards was more or less unanimnous - we learnt more about practical working coding in a week, than we did in 2 years of university courses. They all said they gained an interest, as i was showing them how to use the language to achieve the goal, rather than teach them programming for no reason.
Check out the Computer Science Unplugged group. Lots of fun things to do here that don't require a computer to be up and running.
http://csunplugged.org/
I offered my time for 2 hours once a week to a nearby school in an urban area. I taught a small group (about a half dozen 5th- & 6th-grade students, IIRC) basic computer skills & how to use them for art & animation. For the most part, they seemed to see this as free time away from normal classes. This changed when they asked how much I was paid to be there. I told them I was paid nothing, that I was there to help them learn. They really started to pay attention at that point.