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
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.
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
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.
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.
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
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).
While I agree with the "google fu" sentiment, office has been a high selling point on just about every internship/entry level position I've held. Especially if you combine it with a bit of programming knowledge and a VBA object reference. I've had quite a few managers impressed with a simple VB script when it took their 100+ csv files and made nice graphs of them for a proposal or report. I've also discovered that if you have a good enough knowledge of the suite, you end up increasing productivity all around. For example, showing someone how to use proper formatting tools rather than the spacebar can save a lot of time for everyone who's working on the document.
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.
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 take it you didn't do so well in statistics and probability yourself.
...the future crusty old bastards are already drinking the Kool-Aid.
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.
I'm going to second this on a limited scale.
I took like 4 Office classes throughout High School (only one of which was not the exact same as the others--multiple high schools and cheating the system). The only thing I remember from any of them is what some of the concepts are called, which only makes going looking on Google or elsewhere for them that much easier. And really, if the student learns well this way, they should just be given a list of those concepts by name, and then taught how to find what they need to know on that topic. That should honestly include more than just the internet, though. Teach them how to use the library, and some times, you might need to invest in some books (I've got a couple of books that run through different programming and Office tasks, just because there are topics where it is much easier to find it in the book than on the internet, and those all come in handy for me at work now).
Personally, that's how I taught myself programming (I took C++ courses in high school as easy things that I would already know all of, which worked; college then gets a bit more challenging for types like me). I figured out what concepts I would need to know and found information on them from the Internet and books. I actually took that same approach throughout school, too--I would skim the textbooks, get the concepts and learn them on my own through the textbook, internet, and other books, making class lectures just a review time for me, usually from a few subjects behind where I was in my own study... except I sucked at getting homework actually complete then, because I was too busy getting ahead of everyone else and the homework was already boring and old news to me. The essays and crap that some teachers liked to throw in at the end of the year for a significant portion of the overall grade was always easy, though, because I was already done learning everything (and more) a while back.
But not everyone can learn that way, either. Some people need the more solid, clear direction. I personally think that those people will still benefit a lot from being taught how to find it, but they also need more clear direction on what to learn, when to learn, etc. Some people might be autodidact, but those like me in that regard seem to be the more uncommon types; most people need to be taught by someone else.
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.
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!
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
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
I have used these successfully when home schooling my children for any of the Microsoft Office products.
http://www.technokids.com
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.
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/
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.
But most university CS curricula start by teaching you a programming language
True, but incidental. The programming language is taught in order to teach algorithms. So really, most CS curricula begin by teaching algorithms (with some teaching language you'll never see again), descrete math and logic. Computer Science is not programming, and programming is not Computer Science.
The Admin and the Engineer
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!
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!
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).
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.
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 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.