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?"
You should give away Knoppix
Knoppix is a Debian based LiveCD distribution. It runs directly from the cd. No worries about dads computer getting it's partition table wiped. You could hand these out to the kids day one with no worries.
It contains KDE, OpenOffice, KDevelop, xmms, Mozilla... The list goes on and on. IIRC there is 1.6 gigs on the CD.
I speak from experience, having been a camp counsellor at a computer camp for two summers.
You'll lose the kid's interest unless you're giving them something to do at all points.
Since that's a given, I wouldn't get them to do an install. You might want to walk through a slideshow install or something, but the interminable waiting will get the kids bored and throwing things in a hurry.
Teach them the shell - teach them perl, turn them loose with a bunch of tools at their disposal, and see what they do.
We had one kid test the limits of wordpad, using copy/paste/select-all/repeat. He had a great old time, and actually gathered a crowd, as he was "breaking" things.
Show them how to build a dialectizer in perl - you'll be amazed at the fun they'll have with that.
Keep it fun. End of story.
You might want to have two separate ciriculums if you have such a wide age range in students. I think it would probably be damn near impossible to come up with something that was as engaging to someone in 2nd grade as it was to someone in 10th grade.
First of all, I think you need to ask yourself exactly what it is you want to teach them. If this is about "alternative operating systems", then are you going to teach them ABOUT operating systems? Most people don't even understand where the application stops and the operating system beings. So is it going to be:
A class on how to use Linux and run various user applications?
A class on setting up and administering various Linux server apps?
A class ABOUT operating systems, how they work, and the differences in technical philosophy among them?
A class about programming?
A class about Unix and its history?
It sounds like you haven't really pinned down what this class is about, other than you want Linux/BSD involved. I think it would serve you well to set back from the details of the course, and ask yourself exactly what concepts you want the kids to walk away with.
That said, given its a computer camp, etc, I would take the opportunity to teach about operating systems and what they do. Don't bother having both Linux and BSD, they are effectively the same thing (Unix). Have a Windows box, a Macintosh and Linux, and talk about the technical philosophies of each. Note that the Macintosh, while technically a Unix, does overlay a lot of technology, which creates a lot of interesting opportunity for discussion about where the operating system stops and the applications begin.
Sometimes it's best to just let stupid people be stupid.
You could try distributing Knoppix or one of the other Live-CD distros, to reduce the chance of Little Jo partitioning away mummy's accounting data.
Athletic Scholarships to universities make as much sense as academic scholarships to sports teams.
from "Running Linux" from O'Rielly. This book covers everything from histroy, installing, management, and tools in a logical, and easy to follow order. It's coverage is focused on the command prompt, which is probably best since that's where most experienced users find they can get the most work done
It was my introduction to Linux, an has served me well ever since as a reference.
As a (fellow) O/S-Networking-Hardware instructor, lend me your ear: 1. I have heard (and felt) the Mandrake makes both installations and runtime easy, other than that...there is too much similarity between the distros to really have an impact 2. Inform your students that there are many things that can be done at the CLI as well as the GUI-- some things require the CLI or the GUI...research a dozen or so and walk them through it-- be careful what you choose as you want to let them see more than a few basic functions of an operating system. If you choose wisely, it may serve as a stepping stone for their future exploration/education. (I.T> stuff is always an exploration) 3.Just make sure the ramifications of installing an o/s are discussed-- distribute on! 4.Make sure you show them all of the windoze interoperability tools (wine, etc.) so that when they DO load the o/s on their own systems, they do not lose interest as soon as some of my students do (a few minutes or so) and can still chat with their friends, play games, etc. 5. Inform them of the MINIMUM requirements for their o/s so that if they do not have a dedicated machine, they know that a pentium2 or amd k-6 will run most versions of lin** just fine (and nowadays can be put together for less than $150!!)...perhaps you should send them over to me for a hardware lesson!! The children are the future....of open source as well as anything else!! braunr@pbcc.edu
Why would you dual boot?
It doesn't make much sense to tell kids "here's a free OS, it totally rocks, but you're going to need this proprietary one to get started."
--
the strongest word is still the word "free"
I was one of those kids who went to a computer camp, got interested in Linux, and started to read Slashdot. Here are the tips I can provide about my experience:
:) If they want to learn about KDE or the command line, teach them that. They will learn much quicker, and be much happier (angry kids are not fun)
1. Personally, I already had a great interest in computers. Granted, if the kids are going to a computer camp, they already will, but I was *really* interested. I skipped BASIC and went to C++. (Mind you, this was when I was 10.) See topic 4.
2. The teachers love what they are teaching. If you tell a Microsoft cert to teach about Linux, nothing will happen. Get some hardcore Linux gurus who love kids (hah), and stuff will truly happen.
3. Give them as much as they want, and what they want.
4. This kinda coinsides with 3, but... If they want to go ahead and be very advanced, let them. If you are covering ``ls'' and they want to learn sed/awk, teach them that and let them learn. Again, they'll learn much quicker.
Well, a lot of what I said has to do with teaching in general. But still, being a good teacher is key.
To answer some of your questions, hand out CDs to the parents, so they know what will go on. Bootable CDs (like DemoLinux) preferibly. Don't teach them how to install until they love the OS. And teach them the command line or Gnome, which ever one they want. Teach them an easy Linux, like Mandrake or Redhat (not Debian, even though it's my distro of choice), although mention *BSD and pros and cons.
Hope this helps!
Orange
Being 16, a Linux user for [almost] 3 years, (and someone who earns $20/hr setting up Linux servers for local businesses), and having attended a computer camp, I can whole heartedly recommend that your students individually install Linux on a computer.
:P).
It can be tough, though, as some will bring computers that they can't touch. When I went to computer camp, there were a bunch of rental machines. Had they decided to teach us to install Linux (They didnt, I was the only Linux user... It was extrememly amusing to watch the VB trojans created by our loving counselers fail completely on my box, however... ), I think it would have been smart to image a rental box, store the image someplace, and let the campers go hog wild installing *ix.
You can study, and you can watch someone do it on thier screen, but its nothing like doing it yourself.
When I first started with Linux, I had by cobbled together box that I built for $40, which included 3 hard drives and an S3 Vision864 graphics card. Because I had a free CD of Turbolinux that I got when installing a router at my church, I installed Turbolinux 6.0. XFree86 3.3.6, kernel 2.2.14, all kinds of fun stuff. I tried to *resize* my Windows partition, which produced negative consequences for about 30 mp3s, otherwise failing to have any effect. And that graphics card. If you though S3 cards were bad in windows, you should try to get one working in XFree3.3.6. It took me hours of xf86config tweaking before I had two readable resolutions: 640x480 and 1024x768. Didn't touch XF86Config ever again.
All of that to say, it was a major pain in the butt. No kudzu holding my hand, I had to learn everything from scratch. It was a big deal, but now I configure XFree86 with ease, and can partition a harddrive with the best of them (well, for what its worth. It's not really all that hard
With Linux, its a learn by doing proposition. I urge you to offer your students this opportunity.
-geogeek
~Geogeek now runs an Athlon 1.4GHz box with a nice, big, 80GB hard drive, and a Radeon 8500. Funded in part by Linux skills~
Gentoo? I think you mean Knoppix. Gentoo is cool, but it's a "build everything from source" distro, and very definitely does touch the hard drive.
For the BSD angle, you could set them loose with a FreeBSD mini install, and then let them build a system from the ground up using ports/packages. I found that to be a great introduction to how BSD and NIX systems work.
Sarcastic or not, here. Lets you create compressed filesystems (including CD-ROMs) that can only be read under Linux, particularly those live CDs that are stuffed beyond capacity.
Intelligent Life on Earth
>You shouldn't assume that they know how to install operating systems
No, but I'm willing to bet that given a week, they can learn to install Linux. Especially those with GUI-based installers.
>the one with the GUI will produce better results
They might be more familiar with the GUI, but they can probably learn to use the shell without much difficulty.
---
Open Source Shirts
Actually, Gentoo also has "live cds" which boot without an installation, somewhat similar to knoppix in concept.k 3.xml describes one for unreal tournament.
http://www.gentoo.org/news/20020916-ut2
I agree about it being a bad distribution to start with via a normal install, however.
Do NOT offer it to 8 year olds. I'm 17 and my siblings, all younger and being around that age, either A) don't have an interest or B) want to know why free solutions don't play the games they like. Simply put, offer it to Middle School and High School kids (13-17?) simply because those are the kids that can actually use it. Plus, those are the ages that take computer programming classes and such. They'll also be able to appreciate free software and a free OS.
First of all, I'd like to say how much I love your idea for creating a cirriculum for budding geeks.
;)
:)
Speaking from experience, it is extremely difficult, time-consuming, and frustrating to learn about *nix alone, and a mentor-like system would help kids greatly.
Here are some of the things I wished I knew before I bought books at Barnes and Noble:
What technologies Unix has, what they do, what they are used for, and why they should be used. Talk about languages like Perl, PHP, and whatever else to give the kids a roadmap. I had no roadmap, and I ended up buying an ASP book because I wanted to learn web programming. -_- I was young, naive, and unable to return the book in time to get a refund. It did burn brightly, though.
Go through the compile process and explain dependencies and things like that. Before I got my first Unix machine, I had used classic mac os and I knew nothing of the 10000000000000000 extra libraries and such I had to install to get the gimp working. On that thought, talk about package managment systems- the where, why, and how.
Talk about geek culture. Where did open source start? Larry Wall's Camel Book has a rather good chapter about perl culture, and much of it can be applied to more than one place. Mention slashdot, and tell them to read often
Talk terminals. Please! Get students familiar with the command line, insert a few *modifications* into a configure script to aquaint people with the compiler, linker *gasp*, and the shell environments. Teach kids what LDFLAGS, CPPFLAGS, etc. they can tweak to get code running on their machine. Also, cvs is really useful, so please teach kids how to use and navigate that! The first initial hump in cvs learning can be hard to get over, and I would definately have liked it if I could have had some direction.
Literature. Teach kids how to buy computer books, how to read computer books, and how to amass a library of computer books. Personally, I cannot stand reading text from a computer screen as it hurts my eyes, so don't limit offerings to online documentation.
After all this fundimental knowledge is gained, talk about how to compile a linux (or other) kernel, installing an operating system (i.e. not redhat; installations that use a simple text-based interface, as if some geek threw a linux distro together together that afternoon
I attended java programming classes at my local community college, which were a big waste of time. The lesson is to teach kids how to have some self-direction, so that when they grow up they can be autonomous learners. I had to learn my lessons the hard ways, so I'm glad someone is making an effort to reach out and help students.
I would stay with fun things, and GIMP is probably one of those. I might be biased though, as I think GIMP is a really wonderful program. You are welcome to use my Photo Editing with GIMP presentation. It is a good introduction, but it doesn't get into layers or anything like that. It does get you stared with GIMP though, and most people have a few digital photos.
Other points:-
Stick to the concepts. There's nothing worse then spending a week learning one particular operating system, then having to use a different one later on.
Teach the concepts instead. For example, teach them about harddrive partitions, and not about a specific partitioning program. I don't care how much you know the Mandrake or Redhat partitioning GUIs in the installer, it won't do you any good when you're faced with fdisk. But if you know the concepts, you at least know the shape and pattern of what you need to do.
And teach them how to use the available documentation. Man pages. Info pages. How to use lynx or another textmode browser for html files. They will never know everything there is no know about UNIX, but they *can* know how to find out anything they might not know.
Finally, give each one in the class a different system. Use as many as you can scrounge up. FreeBSD, Mandrake, Debian, Slackware, OpenBSD, etc. Then when you teach about partitioning the harddrive (for example), they'll realize that there are a dozen different right ways to do it.
As the old saw says, "If you learn Redhat you learn Redhat. If you learn Slackware you learn Linux." There is a kernel of truth in there. Someone who is exposed to just Redhat Linux isn't going to transition to a job working with Solaris as easily as someone who's been exposed to a couple of different distributions plus a BSD. You do NOT know what the tech world is going to be like in ten years, so don't make your students live in the past when they get there.
A Government Is a Body of People, Usually Notably Ungoverned