Slashdot videos: Now with more Slashdot!

View

Discuss

Share

We've improved Slashdot's video section; now you can view our video interviews, product close-ups and site visits with all the usual Slashdot options to comment, share, etc. No more walled garden! It's a work in progress -- we hope you'll check it out (Learn more about the recent updates).

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.

Come on Slashdot, be reasonable. Maybe these topics don't represent what would be found in a traditional CS curriculum for college, but they sound like the very subjects that a pre-CS course at the high school level would be wise to teach.

If you've got a computer at home, and your kid can't use a word processor by high school, then something is wrong. Even more so, I think something is very wrong when we need courses to teach people to word process or use a spreadsheet. If you need a course to teach something, you must not want to do it very much.

If you need a course to teach something, you must not want to do it very much.

Who in their right minds wants to use a spreadsheet application?

Seriously, though, it's a useful tool for some applications, but I'm pretty sure nobody wakes up in the morning and wishes that they could type a bunch of numbers into some cells and then figure out their standard deviation. It's the kind of thing that you don't understand the use for until after you've learned how to use it.

Years ago I was taking a Java class. My wife was writing software for a synthetic aperture radar system and one of the key portions of her work was done by a physicist that did all his work in MS Excel. Then her employer would hire an intern to type the output from the spreadsheet (columns of numbers) into a flat file that their software could read.

I had a lot of fun showing her how to write something that could open and read the spreadsheets. While I helped her do that I got to see a bit of this guy's work

A kid sees a word processor or a spreadsheet as something they use when they have to do so, because of school. Most kids won't experiment with them.

A course teaches you not only the basics of how to use the programs, but other features that are occasionally very useful but not apparent to the casual user. Things like pivot tables aren't obvious to someone who only cranks up Word to do book reports.

I had used office software since WP 5.1, and Microsoft Office since Office 95. When I went back to college,

Come on Slashdot, be reasonable. Maybe these topics don't represent what would be found in a traditional CS curriculum for college, but they sound like the very subjects that a pre-CS course at the high school level would be wise to teach.

Exactly. Many computer classes in middle and high school are mostly fluff...at best review for kids who have been using a computer since birth.

I've taught my partially homeschooled kids (10 and 13) how to use the common OSs and basic tools (OSX, Ubuntu, Google Apps, Open Office), how to create and manage content (docs, spreadsheets, graphs, simple web pages, blogs, wiki), navigating and managing their drives (so I don't have to help them find their crap after they've created it), and how to be pretty much self-sufficient on their machines (installing apps, patching, upgrading distros, connecting to printers, etc.). When they get to be 14 or 15, I'll start them on databases, writing queries, and maybe writing a few scripts. At that point they'll be on their own to decide what they want to do with computers. My goal is not to make them CS majors, but to give them enough information to decide if they want to be a CS major...and the skills necessary to use a computer as a tool.

My CS covered intro to OS. My CS covered processor design, followed by BIOS to make that a little more programming friendly, then the OS that goes on top of that, in addition to classes specifically named "OS design" or something like that.

And there were database electives. And every class assumed programming, in addition to a few specifically on programming to make sure that you knew the languages that were common when the professors were in college (and yes, I even had to program a single program on pu

(and yes, I even had to program a single program on punchcard because the professor thought it necessary to teach the old ways).

An ex-colleague had to use punch cards daily on his first job... the guy is younger than me and punch cards were already off the curriculum when I studied CS. One shouldn't assume that a technology will never be encountered and thus shouldn't be taught just because it has been deemed out of fashion.

I mostly agree, MS Office (or office applications in general) has no place in in CS. Aside from maybe a brief tour of the IDE at the beginning (let them choose to use an alternate environment later), CS should be application and platform agnostic.

However, as someone who was required to take an Office course in high school (purely for credits), the most important thing that people take for granted is spending a few weeks teaching typing. IMO any high school CS curriculum, should have a few weeks on typing. I

Elementary school typing was far from universal when the Commodore 64 was available - your school was the exception, not the rule.

I'm probably around the same age (I had a Commodore at home during elementary school, that I two-fingered half to death) and the local school system I attended taught it in high school. When I took the course, half our time was spent on 286s and the other half on IBM electric typewriters.

I agree with the tone of your post, but your analogy is off-base and troubles me. Arithmetic is a direct underpinning of mathematics. The equivalent computer science task would probably be learning how to break instructions down into discrete and logical steps. Computer science as a discipline is fundamentally about procedures and algorithms, just as mathematics is about numbers and equations, and set theory is about relationships and groups.

Consequentially, using Office is less of a computer science curriculum element and more like a general life skill that involves computers. It's true that working with computers as a user is an important preface to learning how to program and think in the exact terms of a computer, but by no means does it fit the same position as arithmetic does for mathematics.

A better post might be "c'mon, guys, he's got a Masters degree. Stop being dicks about semantics and realise that he knows what he means better than most of you do."

This is a silly response and demonstrates a limited understanding of the scope of your discipline and where it fits into the continuum of education. Sure, these topics are not appropriate for a college level CS course, but that doesn't mean they aren't related to computer science.

You are entirely incorrect. GP is right on. None of that has anything to do with Computer Science. NONE OF IT, regardless of the level. The OP has merely expressed an extremely common misnomer... that stuff that has to do with computers is Computer Science. In fact, Computer Science has nothing to do with computers. It has to do with very specialized Mathematics. You can think of it more correctly as the Science of Math rather than the Science of Computers. I think it should have been called "Computing Scie

There is nowhere in a computer science curriculum where offica applications are an appropriate subject. That would like learning to use your pencil in math class. Presumable one learns to use writing implements elsewhere. Also, one should already know how to add and subtract prior to high school. If the OP has asked for addition, subtraction, and multiplication the answer would be the same. No such animal in a high school curriculum.

As someone with a BS in Computer Science and an in-progress Masters; I think it's safe to say anyone who is offended by this question is a d-bag.

Unless you are certain it's being used as a backhanded insult, all this means is someone doesn't fully understand what 'Computer Science' is. That's really not a reason to be offended. I don't really understand Physics, or Chemical Engineering, I'd hate to be afraid of asking a harmless question because I'm likely to offend some overly sensitive guy waiting to jump over a n0ob who only wants to learn.

Besides, what qualifies as 'Computer Science' is pretty subjective anyway. I took a 300-level 'Computer Science' class that was called 'Unix'. It covered basics of the operating system....things as simple as creating directories were covered. And it was very much apart of the Computer Science curriculum at a moderately respected 4-year University.

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 [amazon.com]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.

My thought: It doesn't matter where you learn or how you learn, the fundamentals are universal.

AQA [aqa.org.uk] offers a suggested schooling curriculum and past papers for the exams they set. Sure it's UK not US, but C is C, HTML is HTML, MS Office is MS Office and small furry creatures from alpha centauri make great soup if you put them in the blender for long enough.

The only thing to watch out for is that, given the rapid pace of computer technology development, many older edition training course may have been rendered obsolete by the passage of time. I would be cautious about material older than 10 years (circa 2000), and material older than 15 years (circa 1995) is probably too old to use. Observe the changes to Java, C++, Ruby, and streaming media in those time frames

Of course, many of the fundamentals of computer science (algorithms and algorithm analysis) and so

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...

Lucky you, C++ didn't exist when I went to High School. Hell, the first real book on C had just come out, and certainly wasn't in use in my high school.

That said, Steven Prata's Primer on C++ [amazon.com] was pretty useful for OO concepts. It's now in it's 5th edition. Sigh. But it all depends upon what you want to learn. In the Java language (my current meal ticket) I wouldn't even know what to point you to since all the books I originally used are horribly out of date and I haven't bought one in at least 7 years. I ca

Abreu was being overly cruel, yes, but you should look at the survey statistics for the number of parents who pull their kids out of school for "religious reasons" or (self-described) "radical unschooling." The benefit homeschoolers get compared to the rest of children in some sort of education system is that their parents are involved in their schooling.

I was homeschooled in highschool, and I can tell you that it was hard to get along with the other homeschool families.. as soon as they found out that we weren't "christian" we were summarily kicked out. I didn't really learn programming (futzed around with BASIC on our TRS-80), but I taught myself HTML, and a lot about computers just by using one. Now I run a computer repair shop and do web design on the side. The most important thing I learned was how to teach things to myself.

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

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 arou

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

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.

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

Honestly though office skills will be useful no matter what field the kid ends up in, so that should be first. Google-fu as well. Those are skills needed whether you get an AC certificate from your local commercial vo-tech place, or go on to CS at top tier colleges.

But as others have said, once the basics of *use* are there, start 'em with a programming 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 beauty of home schooling is that the curriculum can meet the needs of the student, not the lowest common denominator.

When you are home schooling just two kids, one of them will ALWAYS be the lowest common denominator. One of them will also always be below the class average in grades, and below the class average in IQ.

Much better to be batch-schooled, your odds of being above average are better.

I take it you didn't do so well in statistics and probability yourself.

Can you explain how one person cannot help but be below the average of anything when you have a population of just two? Unless, of course, the two are the same, and then neither will be above average. Sounds just as bad.

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.

In the submitter's defense, a CS degree from one university to the next can differ wildly (although to hold a M.S.. well.. maybe it was from Devry). My friend and I both entered the CS curriculum at different state schools. Mine was in the top tier, his wasn't. He learned how to program C++ his first year. I was told that we were expected to know the language in whatever course we were taking, and if not, to be able to learn it quickly enough to take the course. We weren't to be taught programming. We

Tell your mum to teach the kids how to write a paper (as in, essay) and how to think things through (maths - logic, thinking skills). CS, such as it is, is not as important as those subjects. Certainly not at high school level.

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"...

English is hardly an exact business (read: language). Maybe you are suggesting we just remove duplication definitions from dictionaries? We could also remove opposites and adjectives, replacing them with double- and un-!

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. [oracle.com] 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.

Agreed. It does seem a bit fishy. But if we are going to bite, I guess I would suggest K&R C and a good book on discrete math.

I wish someone had suggested K&R C to me in the beginning instead of mucking my way through more complicated languages. It is compact, dense and the exercises do the job. And discrete math, well I lucked out and it was one of the easy maths for my major (history), but it ended up being invaluable (ended up writing code for a living). It is one of those things they really shou

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

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 [cengage.com] 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

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.

I am a CS researcher in a corporate lab and a homeschooling father. I'll speak to the subject without snarking about word processing.

For the younger crowd, I can highly recommend Computer Science Unplugged [csunplugged.org]. 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?

You might look at bootstrapworld.org, a project to teach functions and programming to middle schoolers. (I mentioned it in another post, but it's directly relevant to the question.) Their after-school programs (and summer camps) are interesting because they also teach testing (facilitated by functional code) and code reviews (students present their code in a Q and A session) and use pair programming.

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.

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.

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.

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.

Well that's weird, because the 2003 NHES results are right here, [ed.gov] 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

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 relig

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

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.

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.

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.

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.

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.

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 d

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.

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).