Share
Kristie Zientek
Tech Teacher

Code for Kids: Help!

I'm really struggling with a way to bring industry-standard code to my middle school kids. It's such an incredibly dry subject, but I don't want to water it down to the point that it's just filler. Any suggestions for making code relevant? I know there must be a simpler way to explain it, to make a real-life correlation to SOMETHING. I'm just drawing a blank here.

Products
Ratings
5 / 5 • 1 Rating

Comments (10)

Write a reply...
or Join for free to view all comments and participate in the discussion.

Sally Mack

Posted on 8/12/12 7:48:44 AM Permalink

I teach Flash to Middle Schoolers. Up to this year it was Flash 8 and ActionScript 2; this year we did the big jump to CS% and AS3.
You have to go slowly.
I started with introducing the general concept of problem-solving, led on to algorythms and flow-charting before introducing a flowchart for choosing a number between 1 and 10 out of bag; and doing one thing if it was even and another if it was odd.

This led on to making a little random number generator game. We use Code snippets and the insert target path tool to simplify the task. I have a power point and a some Camtasia videos for this. Would it be helpful if I put them into a resource?

You could also try Kristine Kopelkes excellent task http://edexchange.adobe.com/posts/498fb207af.

I also have another complet task called Raphuzels Quest, in which the students make a very simple adventure game from a kit. http://edexchange.adobe.com/posts/86a66aa15e You are welcome to use it.

Kristie MacLaughlin

Posted on 8/9/12 3:20:30 PM Permalink

Thanks, TJ!

We use Scratch currently; I was looking into Kodu for the Kinect capabilities. The problem is, my course is high-school credit in a junior high, and many of my kids can't wrap their head around straight code yet. Maybe if I use a Scratch block and show the corresponding code, that might help them along.

I like your friends!! lol

Kim BurtonRegulski

Posted on 8/10/12 12:51:34 AM Permalink

If you are looking for a way to introduce the concept of OOP without being code specific, you might want to go low tech first with a few hands on activities. For example, have your students use cookie cutters and play dough. Explain how the cookie cutter has size and shape as attributes and is a "class.". When they cut out shapes, they are then making objects. You can also do something similar with Mr. Potato Head. The basic body has places for eyes, mouth, etc. You define those attributes to create multiple objects. After the basic idea of OOP is set, then you can create classes related to those ideas using actual code. Blue J and Greenfoot might be good visual compilers if you use Java.

Kim BurtonRegulski

Posted on 8/10/12 12:51:36 AM Permalink

If you are looking for a way to introduce the concept of OOP without being code specific, you might want to go low tech first with a few hands on activities. For example, have your students use cookie cutters and play dough. Explain how the cookie cutter has size and shape as attributes and is a "class.". When they cut out shapes, they are then making objects. You can also do something similar with Mr. Potato Head. The basic body has places for eyes, mouth, etc. You define those attributes to create multiple objects. After the basic idea of OOP is set, then you can create classes related to those ideas using actual code. Blue J and Greenfoot might be good visual compilers if you use Java.

TJ Fletcher

Posted on 8/9/12 1:47:42 AM Permalink

So, I've become the middle man here...this message is from Andy Phelps, Director of the School of Interactive Games & Media at Rochester Institute of Technology.

"Gamemaker, Scratch, Kodu, GameSalad. Had success with all at various levels (doing both games and non-games). Which age group are you specifically targeting?"

Upon hearing the grade levels...6th-8th...

"At that age level we've had a lot of success with gamesalad and also C#XNA. We use it in our "kids on campus" program. Happy to connect folks with that faculty if needed."

Andy is a member on the Exchange here, so you should be able to contact him if you're interested. Otherwise, a simple Google search will provide more than enough info to get in contact.

You might also be interested in checking out one of his projects, Just Press Play (https://play.rit.edu/).

You can also find more info about the project at their blog site, ThinkPlay (http://games.rit.edu/~thinkplay/).

TJ Fletcher

Posted on 8/8/12 3:31:11 AM Permalink

A friend of mine asked me to post this for him, since the mobile site wouldn't allow him to post comments...

"I think the Scratch project from MIT (http://scratch.mit.edu/) is a brilliant way for kids to learn basic coding concepts. By "coding" here I mean programming, not mark up. It is OOP, but not in a didactic way. It's an excellent gateway drug to the programming world. You can browse the gallery of projects and pull down any one of them to see how it was "coded". I put that in quotes because it is color-coded, snap-together code. Kids are blown away by how easily the can make things happen. In the first hour they will understand variables, loops, properties, events, etc. You just have to try it for yourself!"

~ Bob Flynn, Indiana University

Kristie MacLaughlin

Posted on 8/7/12 9:52:59 PM Permalink

We're looking at 6th, 7th & 8th grade. Obviously, everyone isn't going to jump into Actionscript and fly; I had a hard time getting designers to grasp it. Maybe if I find a way to visually represent the code in Flash, it would make more sense. I like your approach here; I just want them to realize that code does not generate itself.

TJ Fletcher

Posted on 8/7/12 3:06:18 PM Permalink

What age group are we talking about here?

OOP concepts tend to be pretty abstract which is why programs like Scratch and Mindstorms are popular. They help students to visualize the concepts and make them more concrete. I think you'd find most people would be in favor of having students build up the basic concepts...create a strong foundation....before moving into OOP concepts. Understanding variables, data types, operators, control statements, looping constructs, etc. translate to any language no matter whether they use procedural or object oriented programming.

Again, asking yourself..."what do I really want them to get out of this?" is extremely important, and keeps you from getting sidetracked. Scratch is excellent at what it does...allowing you to focus on the concepts of programming without getting lost in the syntax of a language. Once students have a pretty solid grasp on the concepts, you can pick a language to play in because the students will have a visual model in their head to fall back on when things don't seem to work.

Creating an animation in Flash using nested movieclips offers a simple approach to demonstrating OOP concepts. Each movieclip in your library is essentially a Class. When you drag an instance of the movieclip out on the stage, you create an object. Just like you can have multiple instances of the same movieclip, you can have multiple objects built from the same class. You can change the properties of one instance without affecting the others (instance variables)...however, if you change a property on the library item, all instances are affected (class variable). Objects can interact with other objects...they have behaviors (methods or functions) that can be triggered by events (the way objects communicate with each other). Each movieclip in Flash inherits from the class flash.display.MovieClip which inherits from flash.display.Sprite which inherits from another class until you get to the class everything is based off...the Object class. This means all movieclips have a set of methods and properties available before you even do anything...you get to build off someone else's work...you can extend it in any way you like.

Key take away after all this...If the shift to OOP is too much...it probably means they don't have an adequate mental model.

Kristie MacLaughlin

Posted on 8/6/12 10:27:39 PM Permalink

I teach both Flash and Dreamweaver, and I have a lot of overlap between my animation and info tech classes. I teach basic HTML, but it looks so different from Actionscript that I end up losing most of the kids. They grasp HTML pretty well, but the shift to OOP is too much (and I completely understnd, because it makes my head hurt o shift gears, too! lol). I'm really looking for a friendly way to introduce true object-oriented programming, by the code, rather than block programs like Mindstorms or Scratch.

TJ Fletcher

Posted on 8/4/12 3:00:36 AM Permalink

What is it exactly that you are trying to accomplish? You've started with a very broad question...which is probably a good idea, but I'm struggling with the big picture. ;) What do you consider "industry-standard code"?

Is your goal to teach them about code or is it to teach them about computational thinking skills? The best way to make programming relevant is start with a relevant problem...one that exists for the students. Then, you can start exploring ways of solving that problem through an algorithmic approach.

Are you looking at teaching them object oriented programming concepts?