Computer Textbooks For High Schoolers?
wetdogjp writes "I recently became a high school teacher, and I've inherited three classes with no textbooks! While two of my classes are introductory in nature, one for computers in general and the other for networking, the third class should prepare juniors and seniors to enter the workforce and start a career in computers. We have some older textbooks by Heathkit available, but the newest of them are four years old. Do Slashdotters have any favorite textbooks that can help kids on their way to becoming junior sysadmins, programmers, networking professionals, etc.? Would you suggest books to prepare students to take certification tests such as A+, Network+, or others? Any textbooks we use would need to cover quite a breadth of material, such as PC hardware, operating systems, networking, security, and more."
The internet has all the information they need to know. Just teach them how to search effectively for the information they want.
-- Sex is the antonym of pringles. Once you pop it's time to stop.
Do your job for once and write a curriculum like every homeschooling parent must do? Because your teacher's union has blocked the aftermarket sale price of all textbooks?
My C++ teacher had a big book on C++, but all of his lessons were obviously custom written. He just used the book as a foundation.
"We need to get over this notion, that, for Apple to win... Microsoft must lose." - Steve Jobs, 1997
the third class should prepare juniors and seniors to enter the workforce and start a career in computers.
Are any employers anywhere willing to hire high schoolers in any tech jobs in today's economy?
Part of the hardcore faithful who believed in Apple long before it was cool again to do so
I feel like being a BOFH and suggesting this one:
Shell Scripting Primer
:-D
But seriously, I've never much liked any of the textbooks I've read, so I can't suggest anything specific. All I can give is one piece of general advice: whatever you do, don't fall into the trap of using Java as your core language. I understand why some schools do so---the ability to ignore such things as pointers and memory management is tempting---but the result is a bunch of students who don't understand memory management or pointers and only know how to program in a language that almost nobody in the industry actually uses, is fundamentally contrary to performance (at least where GUI apps are concerned), and is nearly impossible to force to integrate well with the OS the apps are running on. It's even worse than Pascal was in the 90s---at least Pascal skills transferred fairly easily to C....
If you have access to a Mac lab, you might consider teaching them Objective-C. There seems to be a shortage of good ObjC programmers out there, and the Xcode/Interface Builder combination makes it relatively easy for students to get their hands dirty and start writing interactive visual apps without having to resort to an abortion like Visual Basic or clumsy programmatic UI widget systems like [insert most GUI libraries here]. :-D
Check out my sci-fi/humor trilogy at PatriotsBooks.
I am in the process of writing a series of free ebooks for high school age students which teach the detailed fundamentals of how a computer works:
http://professorandpat.org/
The programming books are designed to work with a free development environment called MathRider:
http://mathrider.org/
Some of your students may find these to be useful.
Ted
I am on the advisory board for the Computer Technology program for a vocational school Maine, and we are trying to suggest moving on from A+ and teaching something else like Cisco or whatever. The market is way too competitive now for anyone with an A+ certification to survive. Example, why take a computer to a repair shop when you can get a brand new tower from Dell for $200? In my area, there are virtually no computer repair shops left. The only one left solely relies on support to companies and providing classes for its income. Really, who needs to know the base address for a parallel port anymore? Even a PS/2 port at that now.
http://www.greenteapress.com/thinkpython/.
Its a great introductory programming book, focused on Python. Its coming out in print form soon, if that is a requirement.
If your teaching a non-academic programming class, I don't really see the point in using a textbook. Decide on your language and find a good introductory book for it.
I've never been a fan of textbooks -- especially in scientific fierds. They tend to be notoriously out-of-date, and wildly inaccurate even when new. Too much effort is spent making things seem easy, or otherwise dumbing down the content to the point where it becomes meaningless.
But computer disciplines come with a natural advantage: documentation. All of the avenues that you are exploring have solid documentation. Not only is this documentation accurate, it's almost always up-to-date.
I'd suggest skipping the textbooks and giving your students the real experience. Teach them how to handle reams and reams of documentation across multiple avenues.
The good thing, from your side, is that you don't have to give them the most complicated advanced stuff off the top. There are a lot of small steps to be taken with any documentation -- from the equivalent of a "hello world" program and configuring routers all the way up to more complicated yet still manageable aspects like protocols and cross-interactions.
So I'd suggest that you select a few disciplines as you have, grab real live official documentation -- lots of it -- classify them according to complexity -- and by complexity I mean the requirement of additional working systems -- and take your students through actually doing something small.
Small things can be incredibly simple when you read the instructions. Documentation is nothing more than that. I can think of no better skill-set in the computer world than to gather three-thousand pages of documentation on your topic, locate the six pages that apply to your current project, follow them precisely, and then explore their surroundings to see the magic possibilities of yoru new-found power.
That kind of skill easily propegates itself as one bit of knowledge allows you to explore the next. And since it's real actual documentation, it's all 100% (well, let's pretend) correct and useful. Your students will be able to legitimately list things that they've done with little more than quality supervision.
The point of high school is not (or should not be) to prepare kids to be mindless worker drones. The point of high school is (or should be) to give them a good, basic education.
Got to back up plasmacutter here, that is quaint and starry-eyed.
The reason we have so many mindless worker drones is partly ascribable to the schooling system being specifically designed to produce them. Have a read of "The Measurement of Intelligence", by Lewis Madison Terman, it should be enough to cure any scepticism regarding that claim. A look at the role of schooling proposed in "The Communist Manifesto" as a method of bringing about social change ought to challenge your thinking about the purpose of compulsory government schooling too. In case you think I'm just on a right wing rant though, I quote: "Communists have not invented the intervention of society in education; they do but seek to alter the character of that intervention, and to rescue education from the influence of the ruling class." [emphasis mine]
The ruling class (communist or not) always seeks to control the thinking of the population in order to produce people who act for the benefit of the ruling class. The main tool to do this used to be religion, it has now been largely replaced with schooling. The west is largely ruled by government bureaucracy and corporations. School is controlled by government bureaucracy and corporations. We have a population that in general doesn't like to think too much and is very susceptible to propaganda. To think either that school doesn't have a role in producing such people or that it is somehow an accident strikes me as being overly trusting.
If school was really for your benefit and not someone else's, why did it need to be made compulsory? I can understand the desire for free education, but why compulsory?
http://marriedmansexlife.com/
If you are a high school teacher, may I put in my suggestion here?
For me, if you really want to teach about programming (and I think teaching high schoolers to get certification is plain wrong), a high school teacher should inspire students to want to go into that field (or other scientific fields, as a matter of fact). High schoolers can learn the language syntax just fine, any language, and do the debugging too. You can give an introduction to most languages, and they will pick up and do it. The issue here to make them pick up the interest in doing it, and that's the hard part.
I remember when I was at high school, we had that programming course (optional class), where the teacher was teaching us programming Logo on those 8086 machines without hard disk. We needed to have a boot floppy to boot up, then another floppy for loading the program. The teacher thought he was God, we were a class of 40, and the class lasted one hour and half. He refused to create more boot disks so that everyone can boot at the same time, he just had one, gave it to one student at a time, and waited behind the student until the machine boot up, and passed the floppy to the next student. By the time the last student finished booting up, the class is almost over. None of us had computer at home, that's the only place we had access to computer programming.
Not only that, his moto was "Can't do", you can't do this, you can't do that. A few of us came up with some nice tricks to do things, and he threatened to fail us if we don't program his and his only way. For example, to draw a polygon, you must use his method, can't have anything else. We used the math learned in high school, including sin(), cosin(),etc, to program some fun stuffs, like creating a cube and move it inside a bigger cube, with proper perspective and angle and all that. 3D stuff. Yeah, you can do this with just high school math. Guess what, we would have failed the class, if we didn't accept to draw stupid picture by creating points and link the points together with stupid lines. All he wanted was the pictures so that he can print them, stick them on the walls, so that the principal could see his "achievements".
In that class of 40, all of us hated programming by the end. Only two got into computer science at University, I was one, and that's because I wanted to program a computer that can talk to me, like HAL in "2001 : Space Odyssey" (yeah, I read that book at the time).
A high school teacher can do much more than that, and don't underestimate the intellect of high schoolers, if you can rouse their interests.
I think a competitive project between teams would be great, you not only teach programming, you also teach teamwork at the same time. You don't need fancy textbooks, just some introductory materials. Don't limit their imagination, encourage them to go beyond what you teach.
In contrast, we had a great math teacher. Yeah, Mr. Belleau, if you are reading this, I'd like to say, thank you, although it's more than 20 years ago now.
The basics haven't changed much in the 30 years since i did my first programming course (as part of maths at tech college).
The hardware's changed a lot - and the languages have evolved a bit. But the fundamentals of understanding the subject are still the same.
Sadly, that's a very blinkered view of education. Teaching to a particular company's product... Urk. I'd rather my kid just bunked off school than do that. There's a difference between gaining a particular certification (I hesitate to call an MCSE a qualification because it's more a memory test of unnecessary trivialities than anything else) in a limited area and actually TEACHING a subject. Teacher's should not ever be teaching towards a particular product in any area. Bad teacher's do ("Today, we'll be doing computers. The thing we'll use is Word. The only other things that exist are Excel and Powerpoint. Don't ask me how Air Traffic Control works because that's probably just a very complicated Word macro."). Good teacher's don't.
If anything along those lines had been true of when I was at school, I would now be the proud owner of a BBC BASIC qualification, a Logo diploma and a Wordstar certification. Completely bloody useless. That's what the teachers thought we "needed" to know back then and fortunately they were soundly overruled and told to teach generics instead.
You'd flood the market with MCSE's (and thereby making that qualification even less use than it is now) and not provide them with anything else, thus within five years, when things inevitably move on, there'd be nothing to distinguish those who "can" and those who "did once under enormous by-rote instruction when they were a kid". What a horrible idea. You wouldn't help the kids ANY because I wouldn't touch someone who only has an MCSE without either relevant experience or some sort of relevant qualification (not a memory test), and certainly not a school-leaver. Plus, on a large-scale, MCSE's are pretty much out of date by the time they are awarded, let alone as something for the future (I swear MS change certain options just to push the MCSE takeup the next year).
By all means have vocational qualifications in computing - I always argue that there should be more of them. PC Repair. Communications cabling. But don't stick any vendor-specific nonsense into them, don't target them at a single use of commercial software, don't claim that they'll form a career for you, and for god's sake don't pretend that "certifications" are somehow a replacement for an academic or vocational qualification in the same area.