Ask Slashdot: Good Homeschool Curriculum For CS??
dingo_kinznerhook writes "I grew up in a homeschooling family, and was homeschooled through high school. ( I went on to get a B.S. and M.S. in computer science; my mom has programming experience and holds bachelor's degrees in physics and math — she's pretty qualified to teach.) Mom is still homeschooling my younger brother and sister and is looking for a good computer science curriculum that covers word processing, spreadsheets, databases, intro to programming, intro to operating systems, etc. Does the Slashdot readership know of a high school computer science curriculum suitable for homeschooling that covers these topics?"
"looking for a good computer science curriculum that covers word processing, spreadsheets, databases, intro to programming, intro to operating systems, etc. " This is not computer science (Intro to programming maybe), you are asking for a computer usage course, something that was not even allowed to count to my CS major.
Everyone that disagrees with me is a paid shill
Word Processing? Spreadsheets?
Are you sure its CS that she wants to teach?
As far as intro to programming goes, when I took High School Computer Science, our textbook was the Dietel & Dietel C++ How to Program. It was definitely aimed at the beginner to intermediate level programmers and did a pretty good job at explaining fundamentals of programming to a bunch of high school sophomores and making it understandable. As I recall, you can probably go through several chapters per class because it's not so dense and impenetrable that you need bash your way through.
Here's a link to the 7th edition: http://www.amazon.com/How-Program-7th-Paul-Deitel/dp/0136117260
However, there are plenty of copies of 6th editions floating around for pretty cheap. If I recall correctly, copies of the 5th edition are even available for download for free, which makes the curriculum that much more cost-effective.
Anyway, best of luck, hope that helps.
My postings are informational and does not constitute legal advice. Act on it at your risk.
Avoiding the office suite stuff, would generally be a good idea. It's generally far less important to know how to use and office suite than to know how to actually use a computer. Let's face it computers are important for what they give us access to today not for their ability to make nifty graphs. Find something that teaches your kids how to research, effectively using the internet. How to find a solution to a problem in an area they really don't understand and how to do so with out taking two weeks to do it. In short 'How strong is your google fu?'
For little live code practice problems in python and java there's http://codingbat.com/
There's Google's complete free python class at http://code.google.com/edu/languages/google-python-class/
For a huge library of cs assignments, try the nifty assignments archive at http://nifty.stanford.edu/
Give your kids a system they can hack -- give them the ability to touch any part of the system they want, and your ability to teach them about programming and CS will be greatly enhanced. The last thing you should want is to teach your children that there are some parts of their computer or computer science that are off limits to them, or that they can only touch if they work for some large corporation.
Palm trees and 8
I'd recommend checking out the open coursewares for colleges. Most Computer Science stuff isn't really covered in HS in my experience so it's college-level material in certain respects anyway. MIT has a great website that can be used: ocw.mit.edu and there are materials for courses, their outlines, assignments, ets. and this could easily be toned down or tailored for use at home. Other colleges like Oxford University have open courswares and podcasts as well. The audio/visual elements also help as they can target visual/auditory learners. If you want to learn all the details of spreadsheets/wordprocessing/databases, there's some books (ex: http://www.amazon.com/Microsoft-Office-2010-Introductory-Cashman/dp/1439078386/ref=sr_1_1?s=books&ie=UTF8&qid=1306883348&sr=1-1) by Shelley Cashman that cover everything in VERY fine detail (to my annoyance) but it's very thorough and you have pictures, walkthroughs, etc. The best programming introduction I've found is at the beginning of the book called "Hacking: The Art of Exploitation" http://www.amazon.com/Hacking-Art-Exploitation-CDROM-HACKING/dp/B001TKJ92U/ref=sr_1_2?s=books&ie=UTF8&qid=1306883419&sr=1-2) The rest of the book is WAY too advanced but the first chapter or so -- if you can snag it online or somewhere -- is a great intro to pseudo code and structures. I'd recommend C++ or Java for programming and the best books for that are really the Sam's series. They have LOTS of examples and doing the work through doing examples is how you learn. There's the curriculum in one book right for you! Those things could easily be combined for a great course/year. Best of luck!
Are you sure your mom is qualified to teach CS?
Ok, maybe too harsh, that might be fine for HS. But most university CS curricula start by teaching you a programming language---how to do structured program, incrementally adding features and complexity. I don't see why HS should be so different, it's not like it's difficult if you're remotely suited to the topic. Why not give your siblings a leg up on the competition, check out major university CS programs and start from there---from experience, even grade early HS students can master these concepts in small enough doses.
Don't you know, with a masters degree, something about what goes into the field?
Your mother is already qualified to and is teaching computer science, directly by not directly teaching it. Have her teach them about logic and calculus, i guess. What a strange question, really.
http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/ would be a good starting point. Advanced? Yes. The beauty of home schooling is that the curriculum can meet the needs of the student, not the lowest common denominator.
The best thing about a boolean is even if you are wrong, you are only off by a bit.
Kids home-schooled into the high school level that don't already have competence with word processors and spreadsheets? A guy with a MS in CS who talks about word processing in the same sentence as computer science? If he wanted to push more buttons he'd have explained that his mom thought Linux was for commies. Seriously, don't feed the troll.
Moderating "-1, Disagree" is simple censorship. Have the guts to post your opinion.
If you really want to give your children a good education in CS, send them to high school with other children. I have learned at least as much from other students as I have from teachers in CS. By all means supplement this education at home. But if you're their only teacher and classmate, their exposure will be extremely limited. And the fact that you think using word processors and spreadsheets is a pillar of CS hints that you might not be qualified to be their sole instructor in this area.
A GATTAling gun - used to shoot holes in genetics theories.
It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
I can't tell you the number of times I've seen badly written, unclear, badly formatted reports, papers, recommendations, audits from graduates who may have excellent CS skills but can't string sentences together to put over an idea.
So I'm a grammar Nazi. We're in an exact business. Be exact in putting out ideas. And please don't reply to this with "your welcome"...
"The greatest lesson in life is to know that even fools are right sometimes" - Winston Churchill
While Word Processing is not CS, it something pretty necessary for college.
70% of homeschooled children are in very religious families. Assuming that a homeschooler is republican isn't absurd.
Dilbert RSS feed
CS is more than just how to code, but honestly: Learning to write a bit of working code first helps loads.
I taught my 11 year old brother how to code in C, C++, Java, SQL, JavaScript, (he's now 20, and learning Perl & Python on his own).
He didn't get the theory until he could compile stuff and play with real working examples (as I did), and for him, everything we needed was in The Really Big Index. Everything from the concept of Objects and variables, to arrays, branches, algorithms, GUIs, concurrency, graphics, client / servers, etc -- After the first two trails he was studying all by himself, and mastering the programming part of CS. After Java, C/C++ and JavaScript were nothing more than learning the syntax and standard libraries. We installed PostgreSQL, and he picked up SQL in two weeks. I'm helping him write a new scripting language for an existing game engine to learn compiler design -- He's beyond his fellow students, and sometimes even the CS professor in many areas simply due to experience.
As far as tests go -- I don't know about that. Tests are bogus anyhow. Have them come up with a reasonable project that they can complete and learn by doing. You can get a curriculum and do course work, but first get them coding (also note: if they don't give a damn about writing code, you will never make them want to -- Good programmers are born not made).
Is it just me or is there something fishy going on here? Can't decide if this guy is a troll or not.
I went to a real high school and learned to program in my free time by myself. Just get them a computer and either let them come up with projects to do or give them an assignment. Seriously, its pretty easy to learn shit on your own nowadays and a person who is home schooled should know this.
Besides that, what if their passion isn't in computer science? It most certainly isn't for everyone, and I find the only good ones are ones who actually want to do it.
The OP reeks of bullshit.
here are the schools in NYC that match CS
http://search.nycenet.edu/search?q=%22computer+science%22&btnG=Search&client=default_frontend&output=xml_no_dtd&proxystylesheet=default_frontend&sort=date%3AD%3AL%3Ad1&entqr=0&oe=UTF-8&ie=UTF-8&ud=1&site=default_collection
Introduction to Computer Science (Section 01) @ The Bronx HS
http://www.bxscience.edu/apps/classes/show_class.jsp?classREC_ID=274057
the math page which includes the CS at Bronx HS
http://www.bxscience.edu/apps/pages/index.jsp?uREC_ID=3719&type=d
and the different match/cs course offered
http://www.bxscience.edu/apps/pages/index.jsp?uREC_ID=3719&type=d&termREC_ID=&pREC_ID=classes
both places offer online courses. perhaps your mom can glean some direction from them.
http://oli.web.cmu.edu/openlearning/
http://ocw.mit.edu/courses/
boycott slashdot February 10th - 17th check out: altSlashdot.org
I had to be home schooled for a few years because of Cancer. Basically I'd miss so much school because of chemo and sickness I couldn't qualify as a full time student.
Then I went back, same friends as before but much more advanced math, science and reading levels. I was doing math, science and reading at high school graduation levels from 4th grade on.
And now I work in public education, no douchebag parents, no being out of touch with reality, no religion.
How about some Knuth? Because that would be some muthafuckin' kick ass home school CS curriculum.
HA! I just wasted some of your bandwidth with a frivolous sig!
70% of homeschooled children are in very religious families. Assuming that a homeschooler is republican isn't absurd.
What a coincidence, 70% of people also make up statistics whenever they need them in an argument!
Those kids will grow up to be out of touch with reality, thinking they're the center of their tiny universe while being hopeless at everything other than their field of speciality.
... much like un-informed, self-righteous, snarky, cranio-rectal Slashdot writers. Get out of the basement much do ya?
Because of course you know, it is possible for a home-schooled child to become socialized with OTHER home schooled children. Or with other people in the community around them as they go about their daily lives in their neighborhood, or at the market, or gas station, or workplace, or parks, or beaches, or if they are religious, at Church. Because you know, people who go to all of those places actually speak to each other, and thus learn social skills. Unlike public school children who learn their social skills... in much the same way, actually. With the added pleasure of school imposed artificial hierarchical dominance games into the mix.
Behold, this dreamer cometh. Come now, and let us slay him... and we shall see what will become of his dreams.
Educate and get certifications that some companies give credence to when hiring.
Yup, you're a troll. You are also ignorant.
High school taught me that the jocks were invincible (even when they lose), that tenure is more important than competence, and that it's easy to snow HS English teachers with BS. I was very lucky to have one brilliant teacher who told me "you're a big fish in a small pond; don't dare think you'll just take college." (He was right; I lost a National Merit full ride fair and square.)
OTOH, Number One Son has more friends than I did at the time, is doing better academically, and is generally a more rounded individual than I was. His sister is slightly ahead of his stats at the same age...
There are homeschooling "protect my little darlings at all cost", although in my experience they tend to end up more at heavily-religious private schools. The homeschoolers I know have trouble with keeping the socialization limited, not with never getting it.
Seriously. As bad as /. makes it sound, you really do develop good people skills and are generally liked more by the general public after having mastered dealing with bullies, idiots, know-it-alls, etc (assuming they're not one of the aforementioned characters). Good people skills are infinitely more valuable than anything school will teach you.
Computer Science is not Word Processing. Office skill are important, but they aren't Comp Sci. Back in the old days, Computer Science was part of the Business department curriculum (at least it was in my High School), but it quickly spawned off to its own program in Science and went from there.
You need a two pronged approach. The first is word processing, spreadsheets, and some graphics. Good basic computer user skills. Gets the kids over their fear factor and gets them using the tool. From there you can branch to bookeeping or desktop publishing or Photoshop graphics or whatever.
Then you back that up with the underpinnings of good procedural and algorithmic skills and knowledge. It could be as simple as How to write a recipe for hot dogs or How to change a light bulb. No computer necessary in the early stages, you just want them in the frame of mind to get good at putting steps together and phrasing them well to get to a good result. Think of it as programming for the H.Sap2 processor (seriously, try it. Writing good directions isn't easy). After that, you are ready to introduce formalized language and coding concepts, then real languages like java, C, HTML, SQL, javascript, etc. How to make the computer do what YOU want it to do.
If you are basing this on MS Office, there is VBScript and Visual Basic. Useful tools, and it is all built in. But of course you have to be careful
Behold, this dreamer cometh. Come now, and let us slay him... and we shall see what will become of his dreams.
The most important thing is to get him laid. Take him to european countries for as many months as you can legally stay for, and force him to approach girls and women again and again.
So the plan is if he gets rejected often enough, he'll just spontaneously turn into a computer programmer???
These posts express my own personal views, not those of my employer
The actual figure is 33 percent, according to the 2001 U.S. census, or 42 percent if you count the families that cited "morality" as their reason.
Breakfast served all day!
Harvard CS 50. It's downloadable, open, and free. -Enjoy
High school taught me that the jocks were invincible (even when they lose), that tenure is more important than competence, and that it's easy to snow HS English teachers with BS.
So essentially, HS prepared you for real life?
No sig for the moment.
When I was in high school we had a comprehensive Office 2003 textbook that covered MOUS objectives for each of the core office applications. That textbook was published by Thompson Course Technologies. Im not sure if they have been bought out or changed in that time, but I found a Cengage textbook that covers the material for 2010. The book I studied from explained a particular concept, applied that concept, and reviewed that concept. Every few concepts was followed by a test. My instructor followed the method provided by the book, and it worked well.
Use a similar approach with programming. Find a suitable starting language and find a book that follows the concept-tutorial method. To make things a bit more challenging in this area my instructor gave us custom projects that went outside the scope of the objective text, but still relied on lessons we had learned
Yes I know, the College Board is Big Business, but there's a well-defined curriculum. And it got my daughter out of having to take some kind of "Intro to Computer Science" as a college freshman. However I'm not sure if home-schoolers are into AP classes.
First, office suite applications are not computer science. If you want to teach the CS version of word processing, teach them LaTeX. In the meantime, I recommend something that I didn't do: start with a functional language like Scheme (I started with K&R). I TA'd for a Java intro class and it never went well. All the PL (programming language) grad students I know hate C++, and that leaves Python, Ruby, and the functional languages.
Scheme is pretty simple, and probably appropriate for HS-level coursework. One of my intro classes was with Scheme and I liked it (we used the wizard book, a friend of mine had The Little Schemer at his school). I've heard good arguments for using functional languages for introductory courses, but I don't really remember them :(.
I tend not to assume things when I have only a 70% chance of being correct. To each his own.
Right, because CS geeks are well-appreciated in public school peer groups, and won't be ostracized at all. If you're the kind of person who can only learn social skills in school, you probably won't learn them there anyway... either that or you'll only learn a twisted version of what "proper" behavior is.
Skype is too convoluted... Now I'm reverse-engineering the Kyoto Protocol.
Those kids will grow up to be out of touch with reality, thinking they're the center of their tiny universe while being hopeless at everything other than their field of speciality.
You have no idea what you are talking about. I homeschooled my kids and they have a larger and more diverse circle of friends than you can possibly imagine. Unlike school kids, their friends are also from a wider variety of ages because my children didn't experience the age-range apartheid that you would consider 'normal' where the majority of the children you would interact with each day were within 12 months of your own age. My daughter's 16th birthday party had more than 70 kids and 30 adults on the guest list - and these really are close friends who she has spent more quality time with growing up than anything you get out in the school yard between classes.
I'm a software engineer, but for university the kids have gone into fields as widely different as biotech, justice/law, arts/language and design. One of them went and lived in Beijing for a year to immerse herself in the culture/language when she turned 18. Another has travelled to Japan, China and the USA regularly since they were 17 years old. At 13 years old, one of the kids went and stayed with a friend's family in the USA for three months - even saved up the airfare on her own by doing babysitting around the neighborhood.
I guess that I wouldn't agree with the same homeschooling that you don't agree with - but unfortunately for you the reality of what the vast majority of homeschoolers are doing has nothing to do with your narrow prejudiced ideas. For every homeschooling parent who is keeping their kids in the basement, I'll show you 10 school kids who are wasting their lives and potential without any help from their parents at all.
It's your call.
--D
# grep slashdot access.log | grep html | sort | uniq | wc -l 2604
Nice try at discrediting opponents of home-schooling, by pretending to be a giant douchebag.
Your one mistake: NO ONE is as big a stereotypical, reactionary, thoughtless douchebag as you're pretending to be. In the future, your tactic would be more believable if you dialed it down a notch or two.
Just a tip.
- aj
In addition to MIT and CMU, which have already been mentioned, Berkeley and Stanford have their introductory CS courses on youtube (and iTunes.) I particularly like Stanford's CS106 with Mehran Sahami. If you want something more middle-school-ish (or scheme-ish) and connected to algebra and functions, check out http://www.bootstrapworld.org/ (founded by a professor at Brown) (Seeing all of those parentheses reminds me of the book that taught me Lisp, David Touretzky's Lisp: A Gentle Introduction to Symbolic Computation, PDF at http://www.cs.cmu.edu/~dst/LispBook/, which should really be brought back and updated for DrScheme!)
Because going to public school guarantees an ability to have normal relationships, of course. *rolls eyes*
—26-year-old public-school educated student w/B.S. in computer science, a day job programming, and 0 relationships past or present, failed or otherwise
I have used these successfully when home schooling my children for any of the Microsoft Office products.
http://www.technokids.com
Here's the study.
By the way, I didn't need an argument. It wasn't me who called OP a republican.
Dilbert RSS feed
Home-schooling is one of the cancers that is killing America's youth. Man up and live in the real world, or strive to be a bed-wetting momma's boy for the rest of your life. It's your call.
On the behalf of bed-wetters everywhere, I would like to express my disdain at you grouping us in with Home-schooled kids and Momma's-boys.
I'm something.
Sorry. Link: http://www.ncspe.org/publications_files/OP132.pdf
Dilbert RSS feed
The link you gave doesn't cite the census, it cites the '96 and '99 National Household Education Surveys. I got 70% from this paper, which cites the 2003 NHES.
Dilbert RSS feed
An Apple IIe with an assembler, and a few compilers. Or an IBM XT with the same. Give it to them with some old books and tell them to do something fun with it.
That should keep them out of your hair for a while. Isn't that the whole point of a home school curriculum?
Support SETI@home
Except for the Jock part. Most jocks end up as High School janitors, while the nerds who got strait A's end up with College degrees and high-paying jobs. There are the exceptions of course, being professional athletes, but that's a very small fraction.
Actually, if he's in a college town, just go sit in on some college courses. Not for CS, though. Depending on where you are, the home town college might not be very good. I've always been in the "introductory programming is best self taught" camp. A bad intro course can do real damage. Back in the day comp.std.c was the best textbook for C programming, and comp.lang.c was the best "what not to do" reference. Save the courses for the hard stuff (algorithms, operating systems, etc).
Support SETI@home
The Department of Education's statistics disagree:
http://nces.ed.gov/pubs2009/2009030.pdf
Which is strange because they cite the exact same phrasing "religious or moral instruction".
In either case, the number is significant.
Touch everywhere, even when inappropriate.
For the younger crowd, I can highly recommend Computer Science Unplugged. It is a great introduction to the fundamentals of computer science - algorithmic basics, information coding and entropy, finite state automata, and a bunch of other good stuff. Interestingly, the entire course is done without a computer. It has exposition, exercises, and games that reinforce those fundamentals.
It's about 10 hours of coursework, it's free, and it's geared toward the 8-12 year old crowd. My 7-year old didn't have any troubles with it, and was always hungry for more. The novelty of teaching computer science without touching a computer is also compelling.
Now, if anyone can recommend some good coursework on introduction to programming and basic algorithms for the 8-10 set, I'd appreciate it. I haven't found any good educational materials for Scratch (it's all pretty ad-hoc and amateurish), and I think Alice is a bit much for sit-you-down-and-start-programming. Any personal experiences?
Not necessarily. Just because someone is learned in a particular field does not mean they have the skills to dispense the knowledge in an effective manner. I'm not the only one who's encountered people who are experts in their field, yet lack the ability to coherently explain even the basis because they don't have the skills to do so.
Computer Science, Logo Style. Free for personal use.
Leandro Guimarães Faria Corcete DUTRA
DA, DBA, SysAdmin, Data Modeller
GNU Project, Debian GNU/Lin
I have collecting to Intro to Programming links for Kids at my blog and in it comments: https://purpleslog.wordpress.com/2009/07/19/reference-intro-to-programming-for-kids-aka-growing-a-young-computer-geek/
Too bad you aren't going through that now (and no, not in the suffer cancer way). They are required to provide you with an education. That education can't be any less than the education they make available to the smartest person at the school. Having a disease doesn't reduce their need to provide that education. As such, if it costs them $250,000 a year to have a nurse show up at your house (feed you breakfast, even though that's expressly illegal - but it would take the government suing itself for that to stop), escort you to school in an ambulance every day, sit with you in classes (still in your hospital bed provided by the school), administer medications while at school, and escort you home in the same manner, as well as private tutors who go to your house in case you need catching up because your illness was such that it made it hard to concentrate, then that's what they have to do. How do I know? Because two jackass parents (both lawyers) in Anchorage sued until that's what they got. Sadly, that $250,000 per year for a single student takes away from what everyone else gets to work with. And people wonder why public school is expensive...
Learn to love Alaska
Buy a few Arduino boards. Get the robot vehicle version. Add a sound synthesizer shield. Make stuff. Hours of fun and will give you a sound foundation in the basics that you can't get through a higher level language.
Seriously, whatever you end up doing in more advanced or more applied courses (if that's the right word for homeschooling), start with "How To Design Programs". It teaches you how to *think* about just about everything else in computing. There's a second edition in progress. Both the original book and the draft second edition (which is probably much better) are available for free downloads. The original can also be purchased on paper.
The software system that goes with it is also free: Dr. Scheme, now renamed as Racket.
-- hendrik
http://www.cs.rice.edu/CS/PLT/Teaching/Lectures/Released/Companion/index.htm
http://www.ccs.neu.edu/home/matthias/HtDP2e/
http://mitpress.mit.edu/catalog/item/default.asp?ttype=2&tid=3879
Its probably way too late for my comment to be modded up for the submitter, but here goes.
I've taught "Into to Word Processing" and "Intro to Spreadsheets" type courses at some local adult education colleges. The best books I found were the Shelly Cashman series, such as "Microsoft Office 2007 Introductory Concepts and Techniques". Good explanations with screenshots, and good exercises.
Here's an Amazon link: http://www.amazon.com/Microsoft-Office-2007-Introductory-Techniques/dp/0324826842/ref=sr_1_1?ie=UTF8&qid=1306895933&sr=8-1
Its fairly inexpensive for a used copy.
"You cannot find out which view is the right one by science in the ordinary sense." - C.S. Lewis on Intelligent Design
one thing that is not stressed or practiced nearly enough with CS is interaction with people for activities like requirements gathering and maintenance (which is ~80% of a software life cycle). There are jobs where you are handed a spec and you build it with no contact with the outside world, but all the jobs I have ever had require the ability to interact effectively with people from all walks of life.
I got 70% from this paper [ncspe.org], which cites the 2003 NHES.
Well that's weird, because the 2003 NHES results are right here, and they give the figure as 30 percent, down from 33 percent in the earlier survey (the figure being the number of parents who reported religious instruction as being the most important reason for home schooling). In fact, the report you cite repeats the same data; it then goes on to claim that 70 percent of home schooled children come from "very religious families," but it doesn't explain the methodology used to derive that category. I'd love to know how they correlate the two data points.
Breakfast served all day!
This was in South Dakota before ADA, but the school did allow me to take books home, lesson plans for my Grandmother (who had studied teaching in college) and she did well at it.
We had to travel 90 miles each way 3 times a week for chemo (l-Asparaginase and Vincristine) which were pretty tough medications. So it helped with recovery to stay home.
As for the jackasses in Anchorage, let me guess, they live in South Anchorage or Girdwood and decided to hose ASD for laughs?
That data just indicates the number of families that reported "a desire to give religious or moral instruction" as a factor. I don't think that establishes the family as a "highly religious family." It could just mean the parent wants to be able to instruct the child about sex, proper behavior, etc., because they think this kind of education is lacking in the school.
But the same families were asked what the most important factor in choosing home schooling was, and there only ~30 percent responded that religion was the most important reason. I think it would be safe to deem these "highly religious families," though it's still a little speculative.
Breakfast served all day!
Yea, I was in South Dakota, we started Algebra in 5th grade with it being all we did in 7th, I went into freshman Algebra in 8th grade and 9th grade physical science then too.
Unfortunately for me, chemo and radiation as a kid really fraks your math abilities up, so while I took 5 years of it in High School (Algebra, Algebra 2, Geometry, Calculus and Trig) and 5 of science, I wasn't that good at math. 200 level Stats in undergrad was rough for me, but I'm really good at Trig.
Sorry, McFly, but most of the jocks end up with a business degree and become the bosses of the straight-A nerds. Some of the rest become politicians and become the bosses of everyone. The high school janitors are mostly drawn from the stoners (the ones who don't become investment bankers, anyway).
I had my first computer at 13, and learned to program in BASIC, high-level languages (C/C-like languages), and 6502 assembly well before high-school... Spent years BBSing, playing games, typing in programs from magazines & books, creating varoius graphics-related programs, and generally 'hacking' in the old-school sense. I don't think, however, I'd consider having any real training in 'computer science' until my second year of high-school CS class with an introduction to data-structures. Before that it was all 'hacking' or perhaps 'computer literacy'. Probably the most useful thing in that time was learning to touch-type and that was on an actual type-writer... Being comfortable with technology, and able to learn new systems quickly is important and comes from hours immersed in the 'culture' of computers, but many "prep for college" skills are not computer-related: writing, linear algebra, probability, geometry, organizational skills, communications, etc.
Growing up, I played on the same soccer team for years. One of the kids I became friends with was home schooled. His parents were both friendly, sociable, well educated (and from the looks of their house, doing quite well financially).
The kid was as normal as anyone else on the team. He had plenty of friends and did pretty good with the girls too. Honestly, looking back, he seemed to be a few years ahead of the curve; and was one of the most genuinely nice kids I knew. I don't know where the stereotype of home-schooled kids being freaks came from; but in my limited experience, not true.
I did a quick Excel class in my freshman year; it had pointed me to various features that I simply hadn't dealt with while stumbling through the program on my own.
I listen to both RIAA and non-RIAA stuff if I like the music, tangential business/politics nonwithstanding.
Bst learning advice for CS I ever heard was to write an Operating System. Admittedly this was advice to 1st year University students for what to do after the summer, but it should still be sound for high school. All the information needed is out there.
I'd love to know how they correlate the two data points.
The current xkcd has some clues to their methodology.
Crap. What did the new CSS do with the "Post anonymously" option??
Only play videogames that you have programmed yourself.
hahahh, I wish I had mod points. Although not personally home schooled (my wife and her 9 bros and sisters have been or will be) and that was amazingly funny :P
The Open University in the UK does distance learning courses. Their new course starting this year is T100 - Your Digital Life. http://www3.open.ac.uk/study/undergraduate/course/tu100.htm I was involved in setting up the predecessor course a few years ago (You, Your Computer and the Internet). The basic idea is to take people with little experience of using computers through to being confident with word processing, spreadsheets, navigating the web and building some of it for themselves.
Korma: Good
I found ECDL (the European Computer Driver's License) certification to be more useful than I had thought before I looked at its syllabus. It is no good for programming or operation systems but very useful for the "non-CS" parts of your request:
I always dreaded the day when I would have to teach things like copying files or word processing, spreadsheets or presentation software; I'd much rather stick with "proper" CS topics like Python or Unix shell, but I have to say I was pleasantly relieved by discovering ECDL.
There are a lot of curriculum materials that are being used by home schoolers to teach programming and software development at the Microsoft Beginner Developer Learning Center Kid's Corner http://msdn.microsoft.com/en-us/beginner/bb308754.aspx Everything from videos to whole courses for differing ages. You can also find some good curriculum based on Small Basic at http://smallbasic.com/ (see the wiki and tutorial) and http://www.teachingkidsprogramming.org/ I also recommend the CS Unplugged curriculum at http://csunplugged.org/
I won't pile on to the "that's not computer science" comments (but learning how to use Word really doesn't have anything at all to do with computer science).
At this level, the focus should be on basic principles and how to think logically. My suggestion is to look at the new AP course that's being developed on "CS Principles". The materials they're developing to define this course (at http://csprinciples.org/) aren't very useful for a homeschooler now, but there have been 5 pilots of this material at universities, and those course are available in their entirety online. My personal favorite is the course at Berkeley - it's called the "Beauty and Joy of Computing", and is available here: http://inst.eecs.berkeley.edu/~cs10/sp11/
OK, I am not sure what time frame you are looking at. You mentioned an awful lot of topics and comp. sci. would normally be studied for 4 years. I do not consider office tools a part of a traditional comp. sci. program, but they should be taught nonetheless. Assuming there is 4 years of high school I would recommend: .bash scripts). I would then move into basic office programs. I would show Word and Open Office and introduce the student to basic word processing and touch on some advanced editing (tables, formatting, formulas, etc.). In spreadsheets I would show the basics plus introduce macros, which are programming based. Also pivot tables and graphs. There would be plenty of material for 1 year of school, especially considering this as an "elective" which would not be studied more than 1-2 hours per week. .NET stuff if pretty good too. I honestly would not use C++ or Java as the language hinders some of the pure OO techniques.
Year 1/Semester 1&2: OS and Office Tools - In this course I would expose the student to different operating systems: Windows, Ubuntu Linux, and Mac OS. I would have the student master some basic end-user activities, like installing software, installing new hardware, modifying system settings (i.e. env vars, etc) and finally touch on some shell scripts (batch files,
Year 2/Semester 1: Introduction To Programming - Just like it sounds, I would focus on basic programing. The tough part is what language - Pick whatever you are really comfortable with and able to teach. I personally would choose a slightly non-main-stream language like Ada. Focus on basic program structure, good commenting and the fundamentals of the language.
Year 2/Semester 2: Advanced Programming - Move into advanced aspects of the language, structs/records, user-defined types, compiler pragmas, memory management (pointers).
Year 3/Semester 1: Introduction To Data Structures - Classic CS course. Array/Stack/Queue/List
Year 3/Semester 2: Advanced Data Structures - Another Classic. Various Trees/Graphs/Heap
Year 4/Semester 1: Introduction to OO - Focus more on the design aspect. Also use a language that is a "pure" OO language. We used Eiffel, but the latest
Year 4/Semester 2: Advances OO - Get into the more complicated OO stuff. Design patterns, multiple inheritance, repeated inheritance, etc.
That would cover a good bit of computer science...
"I grew up in a homeschooling family, and was homeschooled through high school. ( I went on to get a B.S. and M.S. in computer science ; my mom has programming experience and holds bachelor's degrees in physics and math — she's pretty qualified to teach.) Mom is still homeschooling my younger brother and sister and is looking for a good computer science curriculum that covers word processing, spreadsheets , databases, intro to programming, intro to operating systems, etc. Does the Slashdot readership know of a high school computer science curriculum suitable for homeschooling that covers these topics?"
See those two sentences in bold/italics in the quote above. I call bullshit on this person having a MS in CS (or went through grad school but didn't learn much... it happens.) Who the hell would list word processing and spreadsheets as computer science topics? Moreover, am I to believe a holder of a veritable MS degree in CS cannot devise a basic HS-level CS curriculum?
So its not a course book but Code Complete http://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670/ref=sr_1_1?ie=UTF8&qid=1306930229&sr=8-1 is an excellent read to understand the overall programming process before getting into actual coding. Starting with language syntax and thinking you understand programming is backward to me when you first need to understand developing software and then you can use any language you want to for implementing the program you designed.
get a decently beefy machine and load vmware ESXi on it and carve out some virtual machines of different flavors of OS. Make sure you have a flavor of CentOS5 in there as well as a flavor of windows server 2003/2007 etc. Make them work with each other. Take turns on which OS is responsible for network services such as dhcp, mail, etc. Having to research how to set these sort of services up will go a long way to understanding how networking works. Always take the opportunity to tie certain tasks like arp to theoretical discussions like the OSI model of a protocol that you had prior to the applied portion of the curriculum.
I have always been amazed at how networking has been the most under-discussed, under-taught concepts in schools. Regardless of the background, every trainee I've ever had has arrived with a rather poor concept of networking. In almost every case, to them, networking has just meant programming the ip address, dns servers, subnet mask, and gateway when prompted. Almost none of them could even explain when a gateway is needed and when it is not. Words like RIP, RIPv2, OSPF, BGP were just random letters.
IMO if you're going to become a programmer its very likely you'll one day have to write a program that uses the tcp/ip stack in some manner or another. Having a good knowledge of how all the pieces talk to each other and how the network services work to achieve that goal can only help with that job.
I am a homeschooling Dad with an S.M. in EE/CS. I choose to teach "programming" to one of my kids who was interested using David Eck's Introduction to Programming Using Java back in the 2000 timeframe. The course material was free online, and was very adaptable to the high-school-level. My kid really liked it, and got a lot out of it, especially one of the client server projects and the Human-Machine-Interface (HMI) element. She later graduated as a very successful college CS major and took on a pretty nifty HMI-related job with one of the Federally Funded Research and Development Centers (FFRDC).
As in most subjects, interest level and match between curriculum and student are keys to success. I tried teaching the same course to another one of my kids, and she was uninterested (except for making web pages using HTML), so we never completed and moved on to something else. She ended up going into the social sciences. Your mileage will vary.
First the OP tries hard to dazzle us with his creds. A B.S _AND_ M.S. in CS? Really, is that a synergy of B.S. and M.S.? I never heard of a student brag of having both, when all that is needed is to say they have a M.S. in CS. I guess a doctor should say they have their B.S., M.S. and Ph.D., in medical science then.
Then having this wealth of CS knowledge, he cannot help his mommy or his siblings. At the very least the family can go to home school expos and demos from vendors. {where do I insert the open hand face slap here?}
Next the OP informs us his mommy has a B.S in physics and math. But the concepts of basic computer usage alludes her, even the concept of randomly clicking of buttons and reading the online help manual. So she's a smart idiot. Once again I never met a double major in math and physics that did not know how to use a computer. Maybe his mommy is eighty, then I'd understand. Actually that would explain a lot about this post.
This goes under the epic family FAIL!
come on people... get off your high horses... we all know that word isn't really CS, and i'm sure the OP is well aware of that as well.
my response is to start by simply setting them free on the computer - let them find their own motivations. i learned excel for an online game (and how websites work (rendering code in browser vs pre-compiled, how to manipulate sites via GET, etc) end eventually learned db's because something that i wanted to do in excel was too large and complicated... i would imagine others have learned by making their own myspace/geocities/whatever social sites.
but please, for the love of god, do NOT try to make them memorize the names of every button and object in MS word. nothing could be abigger waste of time, and those things come naturally through actually USING the software out of need...
First, ignore the pedantic morons who say what you are talking about is somehow not CS. At the high school level, speadsheets, databases, word-processing certainly are a massively important part of CS. I don't quite understand where people get off saying its not. 97% of all programming that happens in the real world (I did some extensive guessing on that figure) is geared toward manipulating database, spreadsheet (which is just a simple db), or documents. This is the heart of end-user CS. When I was in school, even learning to use a scientific calculator was hugely important to computing science. Programming is a very very very small part of CS. There's also logic theory (which I don't think ever gets taught to any suitable extent in the states), and a great way to teach your kids logic is to encourage them to learn to play a musical instrument. It is no accident that ALL of the compsci faculty at the university I attended also played music on the side.
Music theory = high-level abstract logic = pre-requisite to proper computing science
Now, here is the easily had answer, and I admit that it's a little suspicious that someone with a BS and MS in CompSci didn't try this, so I also think this post is a bit Troll-ish.
Google: high school homeschool computer science curriculum
and you get loads of the kind of results you are probably looking for
If I were to design a high school computer course, that would be my theme. You cover the basic elements of computing, hardware and software, Then you add the arts: graphic design, elements of writing script, character development, examples from literature, etc.
I wonder if there are any existing high school level course on this. Plenty of arts schools have this curriculum.
Computer training option 1: Go to college
When I started at my local university there were several high school students attending classes through various programs. Junior colleges and state schools have free and reduced price classes for high schools who want to attend classes part-time. Your brother can also take classes full time at the local junior college by getting his GED. Classes from the Management Information Systems department (a.k.a. Computer Information Systems) will teach the basic computer usage skills you have requested.
Computer training option 2: Get certification
The problem with homeschooling is at the end of an excellent education you have no real way of proving your computer skills. After all, the SATs do not test your skills with Excell. Getting Microsoft or some other certificate would be an excellent way of to test your brother’s skills and have a curriculum to follow.
Does anyone have suggestions for what certificates a high school student should get?
Computer programming option 1: Java
The Advanced Placement tests that give high school students college credit assume the student knows Java. I suggest an online introduction to programming college course, however these are more often taught in Visual Basic or C rather than Java.
Computer programming option 2: Ruby
The Ruby scripting language would give you brother an easier starting point that Python or Java while still teaching object oriented programming concepts. The best part is that he can use “Why's (poignant) Guide to Ruby,” a short simple introduction to the language written by an insane man. I think the text would be very appealing to a high school student. Please check it out and enjoy the soundtrack.
HTML version: http://mislav.uniqpath.com/poignant-guide/
Some examples:
Christian Fundamentalist
CS-323 - Building Algorithms with Bible Verse
Students will learn how the bible guides all decision making using advanced flow charting methodologies and the New Idea Bible.
Libertarian Para-Military
CS-400 Applied Advanced Programming Students will utilize various programming languages to write programs in cryptography and working with munitions students in artillery and rocket trajectory feild computations.
Environmental Extremist
CS-410 Advanced Communications Programming
Students will learn to intercept, decrypt maritime whaling vessel broadcasts and to automate triangulation of fleet positions utilizing a botnet of android telephones.
Polygamous Patriarchal Cult
CS-330 - Family Network Security
Students will learn how to secure a family unit network from outside intrusion and methodologies to destroy all knowledge of security access after turning over the encryptions keys and passwords to the Father.
Dominant Patriarchal Schizophrenia
CS-101 Skin Bug Eradication
Students will cover various methodologies of destroying skin bug infections emanating from INTERNET connected computers.
Obviously the curriculum is vastly different for each...
For basic computer literacy starters you could look at the International Computer Drivers Licence ICDL or open ICDL.
Google "open ICDL" or see http://www.icdl.org.za/products_detail.php?id=6&PHPSESSID=ubu69pnfotj76ecs6vsogfabm1
ICDL uses Windows XP, Internet Explorer & MS Office
open ICDL uses Ubuntu Linux, Firefox & Open Office
Both office suites include a mini database (Access or OO Base), which is used to explain some DB fundamentals.
Neither course attempts to introduce any sort of programming.
RTFM is not a radio station.
Some aspects of what you're asking for fall under the category of Computer Literacy and some Computer Science / Programming. I'm building a course right now based on a Classical Education format (popular in homeschool courses). It will target 6-9 year old kids, so it may not be in your siblings' age range, but I'll have some follow on courses that I'm already planning. I hope to ultimately get it to the point of being a comprehensive curriculum that incorporates programming and computer literacy and take a child from grade school all the way through high school. The first course is not ready yet, but I'll be selling it as an eBook on http://mykidcancode.com/ (@mykidcancode on twitter) Good luck.