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.
Dietel & Dietel publish a bunch of intro books (c++, java, a few others) that have a bunch of supplements/coding examples/etc. on their website. They're very newbie friendly and cover a good deal of information. Actually, so do some of the AP comp sci review books (my Baron's AP Java book has a lot of clear examples.)
Look at other high schools and community colleges that teach the same thing you do and see what books they're using.
Certification prep is a double edged sword. The books may be accessible, but they also may be too focused on the test and therefore teach to it rather than teach general skills.
Also, you don't need to use a book for everything. All my intro programming books do a brief overview of hardware, and my profs add when needed. I didn't even have a textbook for my high school computer hardware class (basically a build your own computer thing, but we also learned about karnough maps, logic, and other basics.)
open source modern art: laser taggi
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 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
Talk to the people at O'Reilly, especially their Safari bookshelf. They might be able to cut you a deal for educational use.
http://oreilly.com/
http://safari.oreilly.com/?cid=orm-nav-global
Sure, there's always new stuff, but it's more important to have a good grasp of the fundamentals than to know the latest buzzword bingo stuff that probably won't last long anyhow.
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.
You can use Randy's Alice and teach OO programing really easily.
While I don't think I'm in a good position to recommend specific books, I feel that from my experiences with my nephew (we're quite close) I should add my 2 cents.
While you're in a great position to educate students with regards to computers and in reality, you could even prepare them for A+ and even Cisco or Juniper certification before they leave school, I believe that you should take advantage of the opportunity instead to teach them general computer knowledge and not specialized.
I have worked indirectly with CompTIA and have even assisted in writing books for A+ certification, but I prefer to believe that students taking courses voluntarily in high school should be directed towards higher education in computer science instead of providing them with a certification track that could allow them to go straight to work after high school. I believe that the A+, Network+, CCIE etc... track is great for guys that never got the higher education and want to work their way up the food chain without going to the university at the age of 30.
Don't get me wrong, preparing kids to take a CCIE which would get them $85,000-$125,000 a year the moment they graduate high school sounds great, but if they were able to achieve that by the time they left school, they could achieve so much more with a few years in the University.
Now, if you're teaching in a place where the students might otherwise be doomed to a life working in factories in dead end jobs, or in a place where the percentage of students continuing to higher education is disappointing, you would do them a great favor preparing them for certifications and careers straight out of high school. But if you make it obviously profitable for students to just ditch college and the university because they are certified for jobs right out of high school, then you could in fact be robbing the world of the valuable resources of higher educated scientists.
Teach the students computers as a science at the high school level, not as an engineering skill. If you're teaching at a proper (meaning public) high school as opposed to a vocational school, then computers should be approached in the same way as physics, biology or chemistry.
The students should leave your class knowing where computers come from, they should understand the history of computers. Maybe you should try to teach a limited set of electronics including discreet math (or just general boolean logic), you could even communicate with the local junior college and find out if you can design a credit track where you can use their curriculum to allow students to take college level 1st and 2nd year courses in high school and then take their finals at the college. This is actually how my high school worked and because of that many of the students continued on to New York Institute of Technology with 90% of their first two years of university credits completed.
Well, that was my two cents... I hope you find a good path to follow.
P.S. - if you do end up going down the certification track instead, please choose useful ones. A+ and Network+ are for guys driving silly vans to peoples houses with stupid names like Geek Squad. They're the fat assed, butt crack hanging out of their jeans plumbers of the computer business.
First of all, how long do you think it takes for a book to get to market? Between 6 months and a year it's still brand spanking new.
Secondly, even in computing good books become classics - Think K&R for C programming.
Thirdly, newer books often just make minor modifications to the old text. Hell some just renumber pages to keep up sales. (Hell some teachers re-use course notes for years in a row at a time with little revision).
Fourthly, 5 year old skills are still useful. Few if any companies are using bleeding edge stuff exclusively.
Then there's the Net which is a great resource. There are a ton of free tutorials on the web for various things.
If you've got access to 4 year old books and the Net, quit whining and looking for the most up to date books. You might as well ask for a pony.
These posts express my own personal views, not those of my employer
.. the third class should prepare juniors and seniors to enter the workforce and start a career in computers.
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.
As a former High School InfoTech student and current College Programming Student, I really don't find textbooks that useful at all. Truthfully, the only use I ever get out of textbooks (other than reading the questions the teacher's assign) is reading the examples and the using the reference section.
Not only do examples and references exist on the web, but it is SO much easier to use a reference with hyperlinks than to have to jump between pages of a book
If you really need some good ideas I have a list of resourses:
- CodeSyntax - Basis syntax for Java,C,Python,etc
- JavaBat - different levels of Java puzzles (ajax handles compiling/etc, no software required)
- Eddie's Basic Guide to C Programming
- ANSI Dictionary - unbelievably nice ANSI dictionary, fully cross-referenced.
Consider setting up a wiki-book full of information, labs, excersies and tutorials. This is a computer class after all and information should be easy to find without needing to pack yet ANOTHER heavy book around. To make your job easier, you could allow the students to add stuff to the wiki (log activity of course), even setting up a page where they can add useful websites they've found.
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.
In my area, there are virtually no computer repair shops left.
That is because the repairs (Windows bugs) have become too complex to effectively troubleshoot and repair. To do the job right requires too much time for which you can't bill. After spending a day attempting to recover a Windows box without a reformat, I learned the level of futility. I now too, reformat, reinstall when working with Windows boxes. The software is too complex to repair after a modern malware attack.
The amount of undocumented crap that can hose the sytem is too great.
Here is a typical reason to reformat instead of repair..
1 factory Windows XP install
1 aftermarket freeware photocopier (Scanner to printer)
1 demo factory loaded photo editor
Photocopier works fine, until the need arose one day to crop a photo to post online.. Tried the default photo editor.. the 30 day trial expired a year ago, would you like to spend $$$ for the full version? No.
Now the photocopier is broken. Attempts to photocopy simply launch the dead photo editor as it hijacked the TWAIN driver and launches upon any scan. Removing the photo editor does not fix the photocopier. Windows reports the photo editor is missing, would you like help searching for it?
How to fix??? How much time would be required to find where the TWAIN driver has been repointed. It's buried in the registery and not documented.. It's reformat to fix. Anything else is a massive waste of time.
The wife doesn't want to lose her settings and email so this has been broken for about 2 years. Photocopier functions and photo editing is done on the Linux box now because it works.
The wife is migrating away from Windows as it decays and she too looks for the tools that work.
To learn to like Linux, simply use Windows for a while.
The truth shall set you free!
Two more free (as in b... uh... orange soda) one is a python textbook...
"A Byte of Python
Introduction
"A Byte of Python" is a book on programming using the Python language. It serves as a tutorial or guide to the Python language for a beginner audience. If all you know about computers is how to save text files, then this is the book for you...."
That's one's in 5 different formats and 16 different foreign languages
http://www.swaroopch.com/byteofpython/
The other is "Lessons In Electric Circuits
hosted by ibiblio
A free series of textbooks on the subjects of electricity and electronics
http://openbookproject.net/electricCircuits/
don't fall into the trap of using Java as your core language. [...] the result is a bunch of students who [...] only know how to program in a language that almost nobody in the industry actually uses,
[...]
If you have access to a Mac lab, you might consider teaching them Objective-C.
You're joking, right?
Visual IRC: Fast. Powerful. Free.
... and found hundreds of links. For the cost of printing out a PDF, you can give each student his/her own text. If you contract with a local Kinko's or printing shop, you could have these printed and bound for minimal cost -- far cheaper than the $40-50 that a computer book would cost at Barnes and Noble.
'He who has to break a thing to find out what it is, has left the path of wisdom.' -- Gandalf to Saruman
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.
Given the choice, I prefer a paper source over an internet link nine times out of ten. A good book, properly indexed, is almost always superior to someones personal page or site on a topic. There are exceptions, but overall books offer better presentations. The physical format of a book is also easier on the eyes, and more accessible than a computer monitor.
Hyperlinks are all very well for wiki-trips, but wiki-trips are really more for general knowledge learning. The question of the credibility of information on the internet also refuses to go away. Everyone by now has encountered information on wikipedia they know to be wrong or misleading. The same goes for websites. I don't mean to say that books and printed materials intrinsically have more credibility. But it's usually higher for them, though not by an order of magnitude.
If you want specific, detailed information and training on a topic, you need to read a book.
May the Maths Be with you!
Buy the books for CCIE and MCSE (or whatever MS call it now), one copy of each book for the entire class. Tell them if they don't pass both by the end of the year they get sent to the frontline in Iraq. If they pass that test they will be setup for a lifetime in IT.
The best books for a sysadmin are O'Reilly books, hands down. http://oreilly.com/ Unix Essentials/Linux/Unix in a Nutshell, Systems Administration, BASH, IPTables, Apache, Java, MySQL, PHP, Perl, Sendmail. Thats 10 classes. You could probably cover IPTables and Perl in 9 weeks if the classes were more than once per week. You could probably throw JavaScript and Python in there too.
Armaments, 2-9-21 And Saint Attila raised the hand grenade up on high, saying, 'O Lord, bless this Thy hand grenade' N
goals.
Certification training is only one kind of education, and not particularly important for people who are five to eight years from entering the work force. Of course, computer science is a practical field, but knowing the underlying theory is kind of the point of pre-professional education.
Thinking back over my own history, I think the most important book I ever read was Kernighan and Pike's The Unix Programming Environment. This was a wonderful book, in that it was extremely practical, but at the same time introduced readers gently to things like lexical analysis and parsing. The world would be different if everybody who ever went overboard for XML had read that book. I also recommend K&R's The C Programming Language, even though it is not a theoretical book, simply because it is exceptionally well written and clear. Programming is a fundamental skill, and it's good to learn from clean, well thought out examples.
Perhaps, the shortest advice is anything with Brian Kernighan as an author. Software Tools by K & Plaugher was very influential in my thinking, although the whole "software tools movement" never took off the way its proponents hoped. I don't know what recent editions are like, but these books have practical examples that illustrate important ideas.
Other really good texts, although far to advanced for high school, would be Applied Cryptography by Bruce Schneier, and Introduction to Algorithms by Cormen, Lieserson, Rivest and Stein.
In the end, I would look for books that have a practical syllabus (if you will) that illustrates important theoretical ideas. If students entered CS knowing how to write a fairly clean C program, if they knew how to write a simple grammar that could be parsed by recursive descent, if they could do a simple object oriented design (perhaps Mr. Bruce Eckels' books, which are available online for free would be good here), if they could write both simple filter programs as well as programs that run in a more nondeterministic style, they'd be ahead of where a lot of people coming out of CS programs are.
Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
MIT offers online courses for free, and many of the books they use are available in electronic format. Some of the ones I've seen online textbooks for are the intro to programming and intro to networks. Might be worth checking out.
not only is time travel possible, it's irrelevant.
I meant to include this too. Scratch, created by MIT , is a good programming tutor for kids too. You build programs by stacking code blocks together. It would help to teach structure. link: http://scratch.mit.edu/ ps Sorry about subject title. This was my first post to this forum. :)
The CSTA is a great source of curriculum and materials for teaching computer science:
http://www.csta.acm.org/
I'd recommend joining (it's free for you!) and making use of their resources.
I am looking for a book to help my child, a high school student, become a high school teacher. Is there a book that you would recommend to help me do this? Are any schools hiring right out of high school? [let me know if this goes over your head.]