Week-Long Free-Software Class for Kids?
mmol_6453 asks: "I have the opportunity to submit a plan for a week-long class about 'Alternative Operating Systems' to our local community college's Computer Camp. The students will be aged 8-16. We've had classes attended by students who used Linux, but we've never set up a class with alternatives as options. We've found that students in this age range, when interested in the material, can absorb a great deal of information in a short time. This means there's a lot of potential to teach them about Linux, *BSD, and open-source. We often get extremely bright students here, the kind who are likely to go out and earn $80,000/yr in a post-90s economy. Some of them are even on Slashdot. I want to give the rest a boost in the right direction."
"Considering that the great deal of material to choose from, I need to ask the Slashdot Community its advice:
- Do they need to know how to install the OS first, or should I let them look that up on their own while I make them power-users?
- What distributions of Linux and BSD should they be first introduced to? (I'm only familiar with Debian, and I know virtually nil about *BSD.)
- Initially, do they need to be more adept at the GUI, or do they first need to know how to use the shell?
- Should I give away Debian CDs no-questions-asked, or should I talk with the almighty Parents so little Daniel doesn't install Linux over Dad's 'work computer.'
- Are there any other key issue I need to think about?"
Do they need to know how to install the OS first, or should I let them look that up on their own while I make them power-users?
You shouldn't assume that they know how to install operating systems. The main thing is that it takes a long time to install software, let alone an entire operating system.
What distributions of Linux and BSD should they be first introduced to? (I'm only familiar with Debian, and I know virtually nil about *BSD.)
The one that they are most familiar with, in terms of GUI.
Initially, do they need to be more adept at the GUI, or do they first need to know how to use the shell?
As mentioned above, the one with the GUI will produce better results.
Which do people learn first: How do drive, or how to rebuild a car's engine?
Show the kids the cool things they can do with the software first, and once they're interested, then they will understand why they need to learn how to install it and do that on their own.
I wouldn't teach them installation, I think it's far more important to get them using the system. I would start them out with some command-line stuff, though. That'll give them some historical perspective, and reduce the fear-factor if they ever need to go into command line to recover from a crash. I would definitely warn the parents about the CDs.
Brevity is the soul of wit
-- Polonius
Well I sure as hell wouldn't work in IT for less than 80k. As far as I am concerned, the dot-bomb was a good way to clear out a bunch of clueless lusers who thought that being a decent coder meant reading a few teach-yourself-something-useless-in-21-days books.
better off without them.
- Start off by explaining "FREE". Explain both free as in speach and free as in beer... though maybe not in those terms considering the age group.
- I would stay away from an install of Linux, you could be there all week answering questions on it alone (What does this package do?). Also, stick with a distro you know, but point out all the others. Nothing worse than not knowing right away where that config file is.
- Next up, make sure they're familiar with whatever editor you plan to use. Leave it open to use more complicated editors (vi) if they know it, but otherwise stick to simpler ones.
- Give lots of handouts/links to sites with further information
- Pick a few languages that you are very familiar with, be it PERL, PHP, C, etc.
- Get some interesting projects for them to work on, be it a webpage, game, utility, etc
That's about all I could come up with quickly.Consider releasing your course materials under the FDL.
(So I can snarf them!)
-Peter
LFS
That's where I wish I'd started.
Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
Stick with what you know. If you've never used anything besides Debian, don't teach the class using RedHat. The slight variations might make you seem uneasy. Remember, they can smell fear :)
Don't bog yourself down in installation. A coworker took a Linux class where they did nothing but install for the first two days! If at all possible, have the computers pre-installed before day 1. If some of the kids have prior knowledge, they could assist before the week starts.
As far as which features to learn, ask yourself, "what excites me about *nix". Steer the course towards the answer. You will have to start with the basics no matter what. If you tailor the basics toward a goal, particularly one you enjoy, you're much more likely to inspire somebody.
You can never equivocate too much.
That's a pretty wide range of ages to cater for. An 8 year old would probably get bored with the shell pretty quickly, and opt to play a few games of xbill (Free games, a great way to learn about the benefits of OpenSource), whereas a 16 year old would probably be more interested in nmap and gcc (You'd better not produce a legion of script kiddies).
:)
And as far as the one who are on slashdot, the best directions you could give them is "Quit trolling"
Everyone is entitled to their own opinion. It's just that yours is stupid.
Is this course supposed to be about "Alternative Operating Systems" or "Free Software Evangelism"?
I'm not suggesting you ignore Free Software at all, but give a little time at least to the non-free alternatives. OS/2, or whatever it's called now, would be a good example of something technically well-designed, but which failed in the marketpalce. Pre-OS X MacOS has a very long and interesting history. There are buckets of sites out there that'll give you enough material for a few hours on each one.
It might also be worth spending a little time on the differences between the various Windows incarnations, at least from 3.1 to 95 to NT.
You've got a great concept here - don't go turning it into a sermon. The merits of the Free stuff will be obvious, so there's no need to avoid mentioning the competition.
Wasting your time since 1997.
I use Debian unstable currently, but I don't show it off. KDE is a beat slower than the blazing speeds I see in the Windows GUI. (Of course, KDE is Free, but some people don't get that.) This is because Debian has not yet recompiled its distribution with GCC 3.2.
GCC 3.2 offers a huge speed increase for C++ code. KDE, built entirely in C++, suffers from GCC 2.x's late symbol resolution slowness. To impress the power of Free software on the kids, make sure you use a distribution that has compiled KDE with a modern compiler. You want to make a good first impression, and that means killer speed and killer looks. For the same reasons, if you're going to be doing anything multimedia (even just playing music from XMMS), use recent ALSA drivers that support multiplexing (i.e., SB Live!), and be sure to patch the kernel with one of the real-time scheduling patches. Again, skipping music is not a turn-on.
From there on out, teach them the power of multi-desktops, keyboard shortcuts, and shell scripting. Start them on the platform with a positive view.
|/usr/games/fortune
Explain what the installation will do, step by step (disk partitioning and the like). I'd recommend showing them around the installation process, but coming up with something for them to do for the 10/20/30 minutes it takes to install.
2. What distributions of Linux and BSD should they be first introduced to? (I'm only familiar with Debian, and I know virtually nil about *BSD.)
I know next to nothing about *BSD as well, but I'd recommend showing them at least two different Linux distros (RH and SuSE, perhaps?).
3. Initially, do they need to be more adept at the GUI, or do they first need to know how to use the shell?
I know a lot of people will disagree here, but I would actually show them the shell first. Bash can do a lot of things here, and show them how to use the basic commands (rm, cd, cat, ls, w, id, top, grep, etc.) and then show them some of the cool stuff like Perl, tr, and awk. Then tell them a bit about X and desktop environments; then let them play with the pretty widgets like xmms.
4. Should I give away Debian CDs no-questions-asked, or should I talk with the almighty Parents so little Daniel doesn't install Linux over Dad's 'work computer.'
Knoppix. And talk to the parents as well, yeah.
5. Are there any other key issue I need to think about?
Tell them what not to do, and (most importantly) say WHY not to do it. If you just say "never never do 'rm -rf /'" then you can probably guess what's going to happen. On the other hand, if you say "if you do 'rm -rf /', you'll delete all of your important files (if not the entire thing) and then you'll be up the creek." Though they should be able to figure this out by themselves once you tell them about how the filesystem works and rm's different command flags.
Note to M1-ers: a curt but otherwise insightful message is not "Flamebait" or "Troll".
"Knoppix."
microsoftword.mp3 - it doesn't care that they're not words...
Make sure that they understand that Linux can be a great gamming PC. Be sure that you demo Linux on a decent PC with an accelerated graphic card, the correct drivers for it and then demo Quake 3.
That should get their attention.
The race isn't always to the swift... but that's the way to bet!
OK, I'll bite...
/proc/cpuinfo. /proc/meminfo. Just about anything in /proc that tells you all sorts of stuff about your PC.
/boot/vmlinuz > /dev/dsp. Oh, wait, don't do that :) I guess for kids, logging in remotely and playing random sound files to scare people in the room.
* How about symlinks? And no, shortcuts don't count (though that's how cygwin fakes it). NT can barely do hard links (you need a third party tool to create them).
* Mounting partitions in any directory (I know win2k can do this, but you still have the c:, d:, etc. drives). And mounting many different filesystems.
*
* cat
* A well set up security model (yes, NT _can_ be set up correctly, but it seems like often the whole drive is wrold writable)
* Easy remote administration (through ssh of course)
* Native X forwarding.
* This client terminal servers. And kind of along with that, though different is clustering technology.
* Cron. Though NT kind of has this, it's not as easy to use (and the jobs don't run if you're not logged in!)
* Compiling programs.
* Shell scripts. Hell, having a decent shell. Perl, python, sed, awk, grep, less, and all the other productivity tools Linux users take for granted (sure, you can get them for win32, but most people don't).
* More than one workspace for your GUI. More than one viewport within each workspace.
* Text based logins in case you screw something up and the GUI won't work.
* Almost all the software is written with the user's interests in mind and not some corporation's bottom line (though sometimes those two interests are both accomplished). So you get things like popup blocking, for example.
I could go on and on. Most of the things I mentioned Windows can do, but it's not as polished, or isn't as easy to use. Things like Cygwin do clean up Windows a lot, and are great if you have to use Windows (can gcc cross compile to win32?), but having so many nice things native to the OS makes everything smoother.
Don't get me wrong, there are nice things about windows (the GUI is much snappier than X, even on much slower machines; it's gererally easier to get started on; it's familiar for most people; high end games run on it), but there are lots of deficiencies. And I for one prefer working on Linux/Unix to working on Windows, for a lot of the reasons above.
"Save the whales, feed the hungry, free the mallocs" -- author unknown
First I think your title is misleading, talking about 'alternative operating systems' when it seems you blatantly mean 'free Unix clones'.
If you are giving a talk on alternative operating systems, I think you'd do well to mention other things than just Unix clones (especially those trying to emulate windows). Try to show more variety - MacOS, RISCOS etc. Remember the gui/WIMP operating system as you know it is not here to stay.
I'm not convinced buy all this WIMP (Desktop) environment stuff. I started using a command line of sorts (BBC model B), before switching to RISCOS which was (debatably still is) a very good alternative operating system - there are many advantages with being stored on a ROM.
RISCOS is also in some ways the purest graphical desktop I've ever used. It is almost entirely mouse driven and is the only OS I've found with true drag'n'drop saving. (you drag what you want to save into the folder you want to put it in and let go instead of typing(messing around) in save dialog menus.)
Nowadays I tend to use X-windows with a completely blank desktop without KDE/Gnome or any of that stuff and just use keyboard shortcuts, and the occasional terminal. I've completely forsaken graphical file managers.
Windows XP initially keeps the screen as uncluttered as possible and tries to obscure the filemanager by hiding the 'mycomputer' icon. So we are already moving away from our mid 90s obsession with graphical file managers. The next version of windows (the evil copy protection infested one) is rumored to be moving further away from a desktop to create a more 'integrated' feel and is said to use some database backend instead of a normal file system.
Anyway my point is, operating systems (or at least their user interfaces) are changing, and in 10 years time, will look nothing like what they currently do. So try to equip these Kids to be flexible, and please try to inspire them to think about what they want operating systems/user interfaces to be like.
We must surely be heading towards computers like Holly from Red Dwarf or the computer on the Heart of Gold. We have the technology we just need the will to develop it so please don't kill anyone's imagination by showing them, 'alternative operating systems' that are merely less flashy immitations of Windows.
Computer operating systems and user-interfaces are in cars, wearable computers, cash points, phones, robots, not just dull PC clones. We are already moving away from being tied to using keyboards and mice the whole time.