Software Engineering Demo for a K-5 Career Fair? 310
gmjohnston asks: "A local elementary school is having a Career Fair in a couple of weeks and I
volunteered. The idea is for parents with various jobs and careers to show and tell the kids a little bit about what their's is, why they think it's interesting and rewarding, etc. It's to try to give kids a little early exposure to some of the diverse kinds of things one can do with one's life. I'm a software engineer, so I'd like to show something that has to do with programming or Computer Science, but which would be interesting
to an elementary school student." What would be the best way to illustrate what a software engineer does to a group of primary school kids?
"I'm trying to come up with something like what got me hooked way back when, which was when my Organic Chemistry professor in college showed me a listing of a Basic program (Basic Plus on a PDP-11/70 running RSTS/E if you must know) and I realized that, computers relied on a bunch of instructions that tell the machine what to do, and that if I could change the instructions then I could make the machine do what *I* want it to do! I'll have my laptop with me and I'll be at a table that the kids will be able to gather around and see the screen (or potentially do something themselves on the laptop, depending on what I come up with). Of course, showing them the kind of code I really work on (software development tools) would likely instantly bore them to death. So, the question is: What should I show? If other Slashdot readers have done this kind of thing, what did you do and how did it work out?"
Realistic? (Score:5, Funny)
Unrealistic (Score:4, Funny)
(You may need to rent these items...)
Re:Realistic? (Score:2, Funny)
Now, now ... (Score:5, Funny)
Re:Realistic? (Score:5, Funny)
Don't sleep for 2 days beforehand either.
Oh, and at every opportunity keep asking to borrow a few bucks from each of the kids.
When a parent or school official comes by make sure you start shuffling papers and typing on a keyboard to show that "I'm doing something". Then when they walk away just mumble under your breath "damn Suits".
In fact, mumble under your breath quite a bit, and don't forget your red Swingline stapler...because they switched from the Swingline to the Boston stapler, but I kept my Swingline stapler because it didn't bind up as much, and I kept the staples for the Swingline stapler and it's not okay because if they take my stapler then I'll set the building on fire...
Re:Realistic? (Score:2, Interesting)
Re:Realistic? (Score:3, Insightful)
As for computer programming, not much point getting into that. The market's saturated, and it's shrinking rather than growing, with jobs all going to India. Everyone and his dog has a computer science degree, but you can never find a decent trades
Re:Realistic? (Score:2, Interesting)
Also, there is no such thing as 'software engineering'. Calling something engineering doesn't make it so. Professionaly, the word 'engineer' has a precise legal definition, and calling yourself one when you are not is illegal.
In Texas at least it is quite legal, as determined by the Texas Board of Professional Engineers. It may be legal in other states....I don't know, I just googled it real quickly. In addition, the US Dept. of Labor [bls.gov] says there is such a thing as a Computer Software Engineer. In addi
Re:Realistic? (Score:4, Insightful)
The problem is that the term is terribly misused. The first comment I read here involved endless coffee and coding - that's not software engineering.
Analogy:
Software engineering:coding::Civil engineering:plumbing
Another analogy:
Computer Science:software engineering::Physics:civil engineering
The problem is that software engineering is such an embryonic field right now - there are effectively no widely recognized standards of practice, no standardized testing, etc. for it to come to the same level as most other engineering disciplines.
The coders aren't doing much to change this, nor are the true computer scientists. Ultimately, CS will have to contract to a more self-contracted science, coding will revert to a trade, and software engineering will somehow emerge in the middle.
It's not MS/Oracle/etc. that need software engineering, nor are they driving it. It's coming out of Boeing and other large traditional engineering firms dealing more and more with code that DO take responsibility for their work (that's one of the first tenets of a professional engineer) and have no comfortable way now of determining if the work of their individual engineers is good or not.
Bottom line, from the perspective of a professional engineering firm, MS and all other software firms that follow their model of deniability of responsibility are absolute train-wrecks. At some point, a MS buffer overflow or some other dipshit problem will cause a major direct and obvious financial or human life crisis and the Congressional hearings will begin. Software engineering as a widely recognized discipline will be the result.
The Tandy COCO Guy! (Score:5, Interesting)
I found that the manuals they had, with the anthropomorphized computer dude, were exactly what I needed to learn. The funny thing is, those books were written for adults, but come across like child's manuals since it was assumed that even an adult would know *zero* about how computers work in the early 80's.
My recommendation for the kids is to have them see very basic principles in BASIC if possible, since it's so, well, basic - not that it really matters. What made it so exciting for me as a 8 year old kid was that it seemed possible to know and understand everything about the machine - especially since the book was comprehensive and it wasn't exactly huge. The combination of the cartoon character, the limited and reasonable limit on the total knowledge one could possess about the machine, and the simple, clear lessons engaged my child's mind completely and really sparked my imagination.
COCO manual [joeldalley.com] and another one [joeldalley.com].
ps, mffp? (my first first post?)
Re:The Tandy COCO Guy! (Score:2, Insightful)
Nooooooooooooooo!
". .
Now this is where the truth lies, at bit level. I like to start, not with a computer at all, but with a bag full of Othello chips (or something similar) and demonstrate in a very clear, graphical and hands on sort of way exactly what is going on inside of the little computer brain, and then show how these arrangments of binary numbers represented in
Re:The Tandy COCO Guy! (Score:2)
On the other hand, though, it seems like BASIC is a perfect choice for a K-5'er since it's relatively clean, and it great for very, very simple stuff, like demonstrating what a variable is. Or showing a simple for loop. Those concepts that are so elementary as to be transparent to you are the very ones that the COCO books showed me so well, and for which BASIC was a great platform for learning.
Re:The Tandy COCO Guy! (Score:3, Insightful)
Re:The Tandy COCO Guy! (Score:2)
I suppose I do show my age when suggesting BASIC -- like it's still the only game in town, as is was to me at age seven when I flipped on the CoCo. Another poster has recommended Smalltalk. Python seems like a great language for learning. I learned on Pascal and FORTRAN in intro comp. sci. courses, then took algorithms and data structures within C++ as the language. Pascal alone is a big step up from BASIC, but Python is an even better choice.
The original point I made was that it doesn't
Re:The Tandy COCO Guy! (Score:2, Interesting)
I considered mentioning Smalltalk/Squeak, which I'm kinda fond of just messing about with myself, but I find one of the positive virtues of Python as a teaching language is the fact that it isn't a "pure" OO language. You can bend it to your will, rather than having to bend to its "vision" of what computer
Re:The Tandy COCO Guy! (Score:2, Insightful)
On the other hand it is soooo hard to show accomplishment anymore. When I was a youngster, printing my name 8 billion times on the screen was fun.
10 print "Joe was here. ";
20 goto 10
Now, the student expects to integrate video before the end of class.
I realize that you could teach th
Re:The Tandy COCO Guy! (Score:3, Insightful)
GAAAaaahhhhhh!
Quick - learn smalltalk [squeak.org] and tote along some toys from Squeakland [squeakland.org].
The next generation will thank you someday ...
Truth in education... (Score:5, Funny)
Show them how to quickly switch the browser window away from /. whenever the PHB comes by.
My first suggestion... (Score:5, Funny)
Re:My first suggestion... (Score:2)
Also useful for the K-5 kids who don't like science. Careers Teaching English as a Second Language in India -- but more likely teaching people in Lesotho and Cambodia to sound Nebraskan by the time these kids get out of school.
Re:My first suggestion... (Score:2)
Or teaching Nebraskans how to sound Lesothan by then.
Graphical stuff it the way to go (Score:5, Interesting)
Re:Graphical stuff it the way to go (Score:2)
Re:Graphical stuff it the way to go (Score:5, Insightful)
Make the math fun and interesting (Score:2, Funny)
Modern children can understand math quite well, they just need to be shown how fun and interesting it can be. I think this could be a great opportunity to do just that. Generate a fractal such as the Mandelbrot Set [ddewey.net] where a very simple mathematical formula produces beautiful images. Kids could experiment with zooming in to find interesting regions of the set. More advanced kids could
Re:Graphical stuff it the way to go (Score:5, Interesting)
A Sierpinski Sieve [wolfram.com] not only looks cool, but there is a very simple algorithm you can use to generate it:
- Pick 3 corner points. They need not be arranged in a perfect triangle (if they aren't, you will get a warped version of the fractal.. useful for illustration!)
- Start at any point inside the shape formed by the three corner points.
- Pick one of the 3 corner points at random. Your new point is half-way between your old point, and your chosen corner point. Plot a dot there.
- Repeat the above step indefinitely.
This is VERY simple code, it only uses very simple graphics intructions and changes to things like colors and corner points (moving them further apart, closer together, use equilateral or isoceles triangles...) give instant gratification..
As homework for the "Advanced" (curious) students, maybe let them try to make one (or more) of the three corner points interactive and move at runtime.
Re:Graphical stuff it the way to go (Score:2, Interesting)
"Processing is a programming language and environment built for the electronic arts and visual design communities. It is created to teach fundamentals of computer programming within a visual context and to serve as a software sketchbook. It is used by students, artists, designers, architects, and researchers for learning, prototyping, and production." Where you can show the examples
cubicles (Score:2, Funny)
Re:cubicles (Score:2, Insightful)
they already do it..
that's what we call "education" these days.
Games (Score:5, Interesting)
Probably an interpreted language would be best for this. BASIC had it's moments, back in the day.
Re:Games (Score:2)
Re:Games (Score:3, Informative)
Agreed (Score:3, Insightful)
Where would they get BASIC? (Score:2)
A Classic Game (easy to understand) (Score:5, Interesting)
Lastly, you could discuss the strategy of the game and how to win the most quickly (ask the question "Using this strategy how many turns would it take at most to win?"). You can call the strategy an "algorithm" and you've taught them more CS than they'll learn for the next 5 years.
Show them how you spend your free time... (Score:5, Funny)
Start with Basic (Score:5, Insightful)
Re:Start with Basic (Score:2)
Simple (Score:4, Funny)
SD
That's scary sounding. (Score:4, Funny)
It depends on the programmer. I wouldn't do anything to them at all.
Question. (Score:5, Funny)
What do software engineers do to primary schools kids?
Early Programming Memories (Score:5, Informative)
I think the things that fascinated me most at the time were seeing how programming languages could be used to create games. I spent many hours on my Commodore 64 typing in BASIC and ML source code from magazines like Compute!'s Gazette.
Umm... Logo? (Score:2, Informative)
Re:Umm... Logo? (Score:2, Informative)
Try putting together a predefined demo. Start it with a game the kids are familiar with, either a scholastic game the teachers currently use or get a G-rated game from the internet. Spend about 5 minutes or so demoing the game and describing how the game consists of instructions that tell the computer what to do. Give the opportunity to ask questions. Then when you think you have their attention, show them LOGO. Show how a simple command can make a square.
StarLogo: agent-based and looks COOL. (Score:2, Informative)
Runs in Java, you can spawn hundreds of multicolored logo turtles and make them all move in sync (or randomly) using the same 5-line logo program from the console - type in a line and watch the turtles obey.
Plus, they have ready-made projects (Click on Projects from the main page) that are all set to go, simple and super-cool visually, from "Slime-mold cells aggregate into clusters, using a chemical pheromone" to "Diffusion Limited Aggregation. Create fractals with simple rules".
That
Mindstorm (Score:2, Interesting)
Robot arm and LOGO on a laptop. (Score:5, Interesting)
Demonstrate real-world applicability with a toy robot arm and a poster of a few industrial robot arms, which presumably work the same way.
Without programs, a computer is a doorstop. You know that. Help them know that. The rest is just talking about the incidentals, like whether or not your boss allows hackey-sack near the water cooler.
Re:Robot arm and LOGO on a laptop. (Score:2)
Re:Robot arm and LOGO on a laptop. (Score:3, Insightful)
Re:Robot arm and LOGO on a laptop. (Score:2)
There was a dilbert about this (Score:5, Funny)
"I work in a cube, its kinda like a bathroom stall but the walls are lower"
"I spend most of my days worring about the electronic fields from my monitor are killing me"
by the end all the children are in tears..
I like this approach. We have enough competetion, the fewer of us there are the more they'll have to pay us.
The best way to illustrate... (Score:5, Funny)
Then I'd color it with bright primary colors and cel-shade it because cel-shading is fucking RAD.
Something else... (Score:3, Interesting)
Computer games are of course always a possibility (and a good one at that), but there are other options. I make music visualizers for audio players, and I find younger folks take an interest in it all the time--from all ages. It appeals to kids that are into math and science because, to them, it's something really cool you can do with subjects that are geeky. It's something to consider, at least.
Use a globe... (Score:2)
Bi- or Dual-Sex Examples (Score:4, Insightful)
I'd suggest showing off software about music, the WWW, instant messaging or IRC, or non-NeoMasculine games a la Madden.
In the end, consider asking any kids with your family or friends what they think is cool PC-wise. They should be able to give you insights that an adult wouldn't have the perspective to realize, and will help make your presentation a winner.
Re:Bi- or Dual-Sex Examples (Score:3, Insightful)
Not really. Girls will enjoy a sports game or FPS as long as screens are not two yucky and somone teaches them how to play. What's not going to happen is them spending long hours alone to learn the controls or to beat some 1331 d00d on server stats page. They have better things to do with their free time, like grooming or talking on the phone with girlfriends.
Re:Bi- or Dual-Sex Examples (Score:2)
My invaluable contribution (Score:3, Funny)
Pick a random Indian kid and put him in charge of the stall halfway through.
Towers of Hanoi (Score:2, Interesting)
Make it applicable to their life NOW (Score:2, Funny)
What got me hooked... (Score:2)
Of course, you could take the coward's way out and show them Half-Life 2, and say, "if you're a programmer, you can make games like this!"
Fireman! (Score:3, Funny)
Simulation (Score:2)
Watch Uncle Bill open the valve that feeds water into the methyl-isocyanate tank. Can you say "RUN!!!"?
It's not what you show, it's how you show it. (Score:4, Insightful)
You should completely splitt between what you do on your job and what computers can do. Prepare a show-and-tell only lecture and pratice to explain things in a way kids of this age will find interessting. Maybe tell a story or two of interessting tidbits of your profession in general. Keep in mind that they (children) have a different sense of humor and less concepts of apstraction
The other thing is a practical one, which lot have provided suggestions to allready. I'd like to point out that you might want to explain to someone who isn't the usual future geek and all into gameboy and electronic toys allready the nature of computers and how to program them. I'd suggest a simple program that displays the fascination of automation. Maybe a very simple, tile based turtle program enviroment with your own simple set of commands (go, stop, on, off, forward, backward, left, right, north, south, east, west,... you get the point). It should be good enough to display the basic concept of computers (programmability and automation) but be easy enough to do in a time where a group of kids each can get their own shot and everybody can watch without getting bored. Both units, the show and tell and the little programming part shouldn't take any longer than 30-45 minutes each for a group of 10 children. Anyone more curious should have a chance to ask you more questions though.
My 2 cents from a geek who's been a teacher for some time aswell.
Show them they can be in control (Score:2, Insightful)
What you bring to the table is something else. Programming opens up the possiblity of control, something that kids don't get much of.
I think your on the right track, show them that they can make the computer do what they want. This is what made programming compelling to me as a child.
As to how, I know it is not as powerful as some other choices, but
It's a simple demonstration... (Score:2)
Just some tips (Score:2, Insightful)
easy (Score:2)
Anyway, where I am finishing my latest contract right now, I could show the kids what it really means for some people to work in IT industry. You know, a guy walks into the doors of the company as a junior developer, spends a year kissing up, licking ass, sucking dick whatever it takes. The guy becomes a 'team lead', and is given powers of basically a project manager for multiple projects. Well, it's easy enough since most people i
Beakman's World (Score:5, Insightful)
You need things:
On the whiteboard you write the Requirements:
The CPU is only allowed to execute instructions that are written on a whiteboard by the Engineer.
The CPU is to be as literal as possible when interpreting the instructions - so if the instructions are:
Then the CPU should pantomime throwing something, because the Program does not include the instruction "Pick up the ball".
Start with just the "Requirements" on the whiteboard. As the kids come up, you explain the rules, and let them tell you what instructions to write down.
You can even have a bit more fun - if a kid starts suggesting your standard juvenile crap ("Have him scratch his butt <snicker>") you can pull a Donald - "You have been caught goofing off at work - YOU'RE FIRED!".
If you are real meanie, you can even do more of the experience:
Re:Beakman's World (Score:2)
Have little boxes drawn on a piece of poster board labeled box 1, 2, etc), and put the jelly, bread, etc in each of the different boxes.
Have 2-3 kids writing down instructions, and another take the instructions one at a time and read / execute them
Re:Beakman's World (Score:2, Insightful)
Squeak is *built* for this. (Score:2)
http://www.squeak.org
Build a 3D environment interactively (Score:2)
See the Wonderland 3D Fishbowl Tutorial [consultar.com] for Squeak. You really owe it to yourself.
I should point out that I had an issue with an exception when I tried to "pop" the 2D fish I drew into a 3D shape. If you have the same issue, I can send you the solution upon request. If I re
They know what a computer is... (Score:2, Insightful)
On a slightly related note, I knew a kid who, after watching a man drive a big truck up to his parents' house and operate a bunch of complicated machinery, told e
Simple Paper Turing Machine (Score:5, Interesting)
We were each given (or made, I don't remember) a long strip of paper about an inch or two wide, with lines making it into a long row of squares, like a single row from a page of graph paper. Each square was like a memory location. We were also given a paper clip that acted like the instruction pointer.
There was a simple instruction set, I think they associated numbers with instructions, like move forward or backward so many squares and simple arithmetic. The whole class together worked through a simple program.
There were some downsides to this. Some of the kids were totally lost on what we were trying to do. So we had to go real slow which then made it very boring for me. But the upside was that when it was over, I understood how computers worked and that simple model has helped my throughout my life as a programmer.
The key is to be really prepared and work it all out ahead of time. Make sure you have the instruction set and the simple programs all worked out ahead of time. You might want to practice it a bit. Keep it simple. Treat it like a game with rules. Forget about being true to Turing, instead focus on giving the kids something they can do and understand.
Not all of the kids will "get it". But those that do will really understand what programming is all about. Especially when you combine the simple Turing machine with gee-whiz-bang stuff on your laptop.
Do to them? (Score:2)
Reprogram them.
Here's my list (Score:2)
1) Coffee
2) High-resolution displays
3) Violent video games
Tell them that you get to drink coffee, look at high-resolution displays, and make video games.
JASON Project (Score:4, Interesting)
Here [boisestate.edu] is the download page for it. (I know I know! The site is default template. We just setup the new software last weekend so give us a break =)
Not sure if this helps younger kids get fired up but I did work for 6th graders. =) Its also fun to watch it generate and draw the tree.
Sick bastard (Score:3, Funny)
Show them Squeak! (Score:2, Informative)
It's difficult to explain what it does. If I understand correctly, it is at the same time a "personal 3D environment" which can be shared, a customizable programming environment, a kind of window manager, and a teaching tool.
The special thing about it is that any part of the environment can be edited on the fly, and reprogrammed/modified. This was demonstrated by Alan Kay at his Turing
Demonstrate computer logic (Score:3, Interesting)
Decorate sugar cookies. Have kids give instructions. Do EXACTLY what they say. Gets the point across quickly how you have to be exact when you tell a computer what you want it to do.
For the past few years... (Score:5, Insightful)
It's a great deal of fun, and believe it or not, it won't bore them. Adults fear engineers (especially software engineers) because they think what they're doing is something that they cannot do.
As a result, they actively ignore your attempts to educate them. They think it's just out of reach and would rather appear rude and bored than stupid.
Of course, kids don't know this yet. They're fully willing. They most certainly will understand graphs, functions, tries, and so on. They'll understand it because [as we know] it's not hard, and they're not yet programmed to avoid it.
Show them LOGO; Show them C; Show them the inside of what they think a computer is, then smash open the hard drive and toss the platters around.
They'll love it.
Show them what it means to hack, and how much enjoyment it can bring. Show them your adhoc EIDE hotplug system (so they can try it at home) - show them anything you can. They most certainly will follow.
I must say, there's nothing quite like a third-grader asking why we "don't just all use assymetric cryptography all the time", or how the world let Ben Franklen get away with messing up the plus-minus on battery schematics.
The teachers monitoring you will roll their eyes, but the kids _will_ get it.
Are you a SW Engineer or a Developer??? (Score:2, Informative)
I've got my BS in CompSci and just my thesis away from an MS in SW Engineering, there is a big difference. My advice, tell them you write programs. Convey that programs run stuff like the bank machines, coke machines and games. Explain that programs are all around us.
Suggestions... (Score:2, Insightful)
I don't think that this will make the right impression on kids. Robotics is only one of several interesting hardware/software/compsci fields, but are you using a robot arm on your job every day? Though so...
(If you do, let me know. I for one welcome our robot-arm wielding software overlords!)
Don't get me wrong; I'm not saying you should
Karel the Robot (Score:2)
Guido van Robot (Score:2)
Interestingly enough, this setup is actually Turing-complete.
last refuge of the honest (Score:2)
tell them that your job is the last refuge for the honest, in today's world full of deception and corruption, that writing programs is the oasis of sanity in a world gone bad. the computer (and the computer programs you write):
tell them what you do can be applied to how you do it. as you write programs (and fail to write programs), you can improve your craft and (given a
It's not all programming (Score:2)
If you're going to have some code with you, you could make it something interpretted and graphical. If you're a java guy, beanshell might be the way to go.
Karel the Robot (Score:2)
In fact, I have an idea for your presentation. As part of my unit on looping and recursion, I've written a set of classes that generates a maze that Karel has to trave
Will Code for Food? (Score:2)
"Will Code for Food - my job went to Bangalore!"
Demo for a K-5 Career Fair (Score:2, Informative)
Robotics (Score:2)
Talk to them about video games! (Score:2)
Infinite LEGO bricks (Score:2)
A visual illustration might be to have a small number of LEGO bricks in a box (but not enough to build much), and then a screen displaying a basic program of some kind that lets you show how easy it is to make new variables or something.
Having the basic program actually do something useful would b
Fight Invisibility (Score:5, Informative)
Check out toontalk [toontalk.com] for a graphical programming environment that looks like legoland.
Also see how the objects-first people are teaching programming nowadays. In the first week of class they have people drawing faces using OO programming, without loops or branches. For example, they have the students create a drawing program using event callbacks.
Squeak! (Score:2, Informative)
Why not What (Score:2)
For example, one driving motivator for a lot of people is this notion that they are building something that benefits a large number of people.
Kids, have any of you ever built a castle out of legos or a boat using capsella blocks? It's pretty fun isn't it? Ever show what you made to your friends or pare
TurtleJava (Score:2)
http://www.comp.leeds.ac.uk/se15/TurtleJava/tur t le java.htm
The advantage of using Turtle is that you can actually see what's happening. ie, forward(20), blot, etc.
It's simple, easy to illustrate, and you can do some cool things with recursion. If you download it, go to the help menu and choose some of the code examples.
I think primary school kids w
show how to make a video game (Score:2)
Re:Shiny! (Score:2)