Slashdot Mirror


What 'IT' Stuff Should We Teach Ninth-Graders?

gphilip writes "I have been asked to contribute ideas for the preparation of a textbook for ninth graders (ages circa 14 years) in the subject of Information and Communication Technologies (ICT). Could you suggest material to include in such a text? More details below." Quite a few details, actually — how would you add to the curriculum plan outlined below? "Background: This is for the public school system of the state of Kerala, India. The state has near-total literacy (we achieved this goal in 1991 following a massive literacy drive), and the government is keen on achieving total e-literacy as well. This drive for e-literacy — and the school curriculum that is the subject of this question — is based entirely on free and open-source software; the school system uses a customized version of Debian for teaching purposes.

ICT is a subject that has been recently introduced into the school curriculum. Currently we have, for all intents and purposes, a 'first generation' of students (and teachers) in this subject. To be more precise, the general public is just beginning to use computers in a big way, and the goal now is to familiarize them with the use of computers, and more specifically, with FOSS. The ICT textbook for the eighth grade (native language version), therefore, focusses on introducing various GNU/Linux software and showing how they can help in learning the other, more traditional, subjects. This textbook introduces the following software: The Gimp, Sunclock, OOO Writer, Calc, and Impress, Kalzium, Geogebra, Marble, and Kstars. In addition, there are simple introductions to elementary Python (variables, the print statement, and if-else), networking, and the Internet.

What we need: In the ninth grade textbook, we would like to shift the focus a bit. We want to introduce concepts which give more scope for creativity, and form a basis for further studies and/or a vocation in the future. The student spends one more year (the tenth grade) in the school system, and so there is scope for developing further on the theme of the ninth grade ICT book when designing the textbook for the tenth grade.

Given this background, are there some other FOSS software that, in your opinion, it would be good to introduce to our ninth graders?

I am partial towards introducing more of Python : the two loops, and perhaps the notion of a function. Do you have suggestions/pointers on how to go about doing this in a way that is easy to learn and to teach?

I would also like to give a glimpse of some ideas from computer science — the idea of an algorithm, for example — so that those kids with a math/CS aptitude get to see that there are such things out there. Which algorithms would be good for this purpose? Binary search is perhaps a good candidate, given that it is easy to describe informally, relates easily to things with which the student is familiar (phone book, dictionary), and it is easy to bring out the contrast in running time with the more natural linear search. What other algorithms would be instructive and motivating? Which other notions from computer science can be introduced to this audience in this manner?

Any other ideas/suggestions about this are also welcome."

69 of 462 comments (clear)

  1. backups are important. by Anonymous Coward · · Score: 5, Insightful

    backups are important.

    1. Re:backups are important. by paeanblack · · Score: 5, Funny

      backups are important.

      Yes, the 11th Commandment: "Thou shalt make backups"

      Unfortunately, it was on the third tablet...

    2. Re:backups are important. by Anonymous Coward · · Score: 2, Funny

      and there was no backup ;-)

    3. Re:backups are important. by Anonymous Coward · · Score: 3, Insightful

      Backups are meaningless. Being able to restore is important.

    4. Re:backups are important. by pjt33 · · Score: 2, Interesting

      Ironically*, the two tablets of the Decalogue may well have each been a full copy, although not strictly backups. Standard practice with treaties was that one copy went in the king's palace and another in his god's temple. Since Israel was a theocracy, the king and the god were the same, and hence both copies went into the tabernacle.

      * Sorry, can't resist the opportunity to start a flame war :)

    5. Re:backups are important. by Kozz · · Score: 4, Funny

      backups are important.

      Yes, the 11th Commandment: "Thou shalt make backups"

      Unfortunately, it was on the third tablet...

      Not to worry. You can rebuild the third tablet by XORing the odd bits on tablet one and even bits on tablet two.

      --
      I only post comments when someone on the internet is wrong.
    6. Re:backups are important. by INT_QRK · · Score: 2, Insightful

      How about: basic, block diagram level, computer architecture (x86, might as well); the components and functions of main memory, bus, registers, and long-term storage; stacks, the concept of machine language, then more abstractly represented in assembly, and then BASIC. Then, second half of the year, and only after demonstrating understanding of the above concepts, simple programming. Wouldn't hurt to avail the little tykes with foundational understanding that doesn't gloss over the the point that IT is not built on magic -- apologies to Harry Potter.

    7. Re:backups are important. by FatdogHaiku · · Score: 2, Funny

      Yes, the 11th Commandment: "Thou shalt make backups"

      Unfortunately, it was on the third tablet...

      So, there was no backup of the tablet containing the "Backup Commandment"?

      --
      You have the right to remain sentient. If you give up the right to remain sentient, you will be elected to public office
    8. Re:backups are important. by Dekker3D · · Score: 2

      And thus, there shall be no backup!

    9. Re:backups are important. by furbearntrout · · Score: 2, Funny

      I'd link to the Tao of Backup, although that is more for Buddhists.

      --
      Crap. What did the new CSS do with the "Post anonymously" option??
    10. Re:backups are important. by Lord+Kano · · Score: 3, Informative

      * Sorry, can't resist the opportunity to start a flame war :)

      There's nothing to fight over. You're wrong.

      Since Israel was a theocracy, the king and the god were the same, and hence both copies went into the tabernacle.

      If you actually KNEW the story that you're opining about, you'd know that Moses received the tablets before they reached Israel. They were wandering in the desert. There was no palace, there was no temple. Most importantly, there was no Israel.

      They had just fled Egypt, where the king was considered a God. The Israelites didn't believe that. God was God and the King was the King.

      If you took the time to get to know what the fuck you were talking about before opining, you'd know that.

      Full disclosure, I do not subscribe to any of the Abrahamic religions; however I do know and understand their beliefs.

      LK

      --
      "Hi. This is my friend, Jack Shit, and you don't know him." - Lord Kano
    11. Re:backups are important. by kabloom · · Score: 3, Interesting

      You're history is a little bit wrong. Israel had a human king as well, but he did not have a copy of the tablets. He was commanded to write two torah scrolls for his own use in his lifetime (like the Torah scrolls we use today).

      As for the tablets, there is an opinion in the Talmud in Tractate Shekalim that there were 10 commandments on each tablet (as you say). There are other opinions that have even more copies (one copy on each of 4 faces of each tablet -- left, right, front, back -- for a total of 8 copies). And some say that one tablet had the version from Exodus, and the other had the version from Deuteronomy.

      I'd like to see the look on peoples' faces when we recover the tablets and they find that they don't look like the pictures the artists have made all these years.

    12. Re:backups are important. by arth1 · · Score: 2, Insightful

      Indeed, but to do that you have to have (at least) an extra set of disks to restore to. Good luck getting non-tech minded people to buy two drives instead of one (or four instead of two).

      Anyhow, back to topic, at 9th grade, kids should know both algebra and calculus, and be able to handle derivations if not yet being comfortable with integrals. I'd say that they should know Boolean algebra by heart, as well as how all the fundamentals for common CPUs and kernels including pipelines, stacks, interrupts, arrays, threading and other simple concepts.

      But don't tie them to specific kernels, programming languages and definitely not specific programs. They need to learn the fundamentals, or they'll just end up becoming users with a capital L, with "knowledge" that's outdated before they get their first job. But I fully expect the schools to jump into bed with specific vendors, and "teach" the students basically useless stuff.

    13. Re:backups are important. by srothroc · · Score: 2, Informative

      Algebra and trig, okay -- calculus? Integrals? I don't know what school you went to, but I haven't seen a public school that teaches that stuff earlier than, say, AP Calculus, which is usually a 12th-grade course.

    14. Re:backups are important. by davester666 · · Score: 4, Funny

      How about:

      The 3-fingered salute to Microsoft
      The difference between a Windows Install disc and a Windows Recovery disc

      The beginning of a Microsoft help desk script, something along the lines of:
      Hello, may I help you? ...(person can say anything here)...
      Have you tried restarting your computer?
      Have you tried reinstalling Windows?
      Do you have the latest drivers for your video card, mouse, printer and any other peripherals?

      --
      Sleep your way to a whiter smile...date a dentist!
  2. Teach them how to communicate by kevinmenzel · · Score: 5, Insightful

    Teach them that the proper use of language is important, even when you're using a computer. It is almost guaranteed that at some point in their working life, they will use the computer as a communications tool, so it's an important thing to know (that most teens seem not to know)... additionally it would make comments on Facebook easier to decode. I know it's not strictly IT... but it's on a computer... wait... I smell a method patent coming... "Proper use of language... ON THE INTERNET".

    1. Re:Teach them how to communicate by sznupi · · Score: 3, Insightful

      ...it could certainly help those of them that will become an outsorced workforce.

      --
      One that hath name thou can not otter
    2. Re:Teach them how to communicate by ddillman · · Score: 2, Interesting

      Mod up! The biggest pain of outsourced tech support has got to be the language/accent barrier. Right after that would be heavily scripted workflow, forcing me to work through possibilities I've already eliminated just so the support worker can follow their script.

      --
      Little girls, like butterflies, need no excuse. -- L. Long
    3. Re:Teach them how to communicate by vlm · · Score: 4, Insightful

      The biggest pain of outsourced tech support has got to be the language/accent barrier.

      Best handled by the language arts / English department not "IT".

      This is a temporary problem anyway. Once all "desk" jobs are outsourced, they will be talking amongst themselves in their native language.

      Right after that would be heavily scripted workflow, forcing me to work through possibilities I've already eliminated just so the support worker can follow their script.

      Best handled by improving the "MBA" training here in the US, those decisions are not made by the script readers.

      --
      "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
    4. Re:Teach them how to communicate by fysician · · Score: 2, Interesting

      Reason why they use internet language is to confuse those who do.not belong to the group they feel comfortable with, such ad parents or adults like you. Being understood is not so much of their concern.

    5. Re:Teach them how to communicate by Donniedarkness · · Score: 4, Funny

      I smell a method patent coming... "Proper use of language... ON THE INTERNET".

      That would work, as there is essentially no prior art.

      --
      Earn a % of cash back from Newegg, Tiger Direct, Walmart.com, and more: http://www.mrrebates.com?refid=458505
    6. Re:Teach them how to communicate by im_thatoneguy · · Score: 2, Insightful

      I would say though that beyond interacting as a team and other language skills I would actually add at least a small section on properly writing a design spec.

      The future of outsourced IT even is be able to clearly deliver your creative vision to a team of developers who might not be on your continent. A clearly written design doc is like a form of programming except that it is written in plain English. Yes it's less clear than something like C++ but it also approachable. Let the Chinese worry about performance and memory leaks at $0.50 an hour. 99% of code isn't groundbreaking innovation in algorithm design it's just competently executing a design doc.

      I'm not a full time programmer but it seems like offloading all of the menial development and bug bashing after the architecture is designed would be desirable. If I had a magic compiler which took some outlined code and a design doc and made a program I would think it was the greatest invention in computer science since the transistor--and yet we kind of have that in outsourced inexpensive development companies.

      As the students learn to write design docs the teacher should be competent in programming and always challenge the students to not have any 'holes' in their design that would be ambiguous and perhaps result in an undesirable solution. Just like code had compile errors, the teacher's role would be to 'compile' the design docs and report incomplete logic.

      You could do this completely outside of the specifications for IT. Maybe they aren't interested in computers yet. So write up design docs for ANYTHING. Play the Amelia Bedelia and tell fellow students to take everything incredibly literally--and try to follow their classmates' instructions without any intervention. See if they can get a classmate to recreate something using only their design doc. This would be entertaining and educational. And tell them they have to be specific. If they don't say to use scissors then don't proceed with the step that involves cutting. Very quickly the students will see where their peers are failing (and where they fail on other people's design docs) and get into the spirit of things.

      Also important in an IT program would be Troubleshooting. How many times do we have a family or friend call us and go "My such and such doesn't work. Do you know how to fix it?" The answer is almost always the same "No but...". People rarely know the answer to a problem. A mechanic often doesn't know what's wrong until they've gone through a process of elimination.

      There should be course material in playing 20 Questions. Where you use logic to whittle down a problem to a likely solution. Try it and then go back to the beginning. Again this isn't limited to IT or computers. Diagnostic problem solving is critical to every area of learning. It could be the most important skill a student learns period. It's the fundamental process of problem solving. Maybe have each student learn about two or three subject and then as a team of 4 give them a 'mystery' to solve. As a team they should work together to use their combined knowledge to solve the mystery. "Maybe it's a cougar." "No the cougar doesn't live in South America. Which of our animals live in South America?"

      It would teach diagnostic troubleshooting and team work simultaneously.

      Lastly I think we start teaching formal logic far too late in life. An introductory programming class is a good way to condition pure logic but other classes should get in on the act. Essentially logic is the formalized science of minimizing hypocrisy. Teachers should put a strong emphasis on encouraging students to formulate ideas that aren't self contradictory.

    7. Re:Teach them how to communicate by Silverlock · · Score: 2, Insightful

      In defense of support people everywhere, there is a reason for the scripting. Yes, you may know what you are doing. Unfortunately, most people SAY they do even when they know nothing.

      I don't have to work with a script, thankfully, but I always start at the beginning. People rarely define the problem they're having correctly. "I can't get on the Internet." can be (and has been, in my experience) the result of the computer not being plugged in. Also, I can't tell you the number of times people will say, "Yeah, I tried all that already. The cables are all plugged in. Nothing has changed." *An hour later* "Oh, this cable isn't plugged in, could that be the problem?" In fact, "Nothing has changed" is a running joke in my office.

      My favorite was the guy who started the conversation by yelling at me that he had a master's degree in computer engineering, so there was absolutely no way the problem could be on his end and I better fix it right now. I explained that others were not having the same problem, so I had to check a few things on his side anyway...

      "Please open up the control panel."

      "What's that?"

      *face hits desk*

  3. Teach 'em the basics by mikein08 · · Score: 5, Insightful

    I know, this is old fashioned thinking, but people need to understand the concepts of bits, bytes, words, longwords, binary/octal/hex numbers, thinking sequentially and logically, what an operating system actually does, what an IO system is and does, how a computer actually does math, etc., etc., etc. You know, all the stuff we learned 40 years ago. Make 'em learn a programming language too. MK

    1. Re:Teach 'em the basics by jasonjas · · Score: 2, Insightful

      I agree with this, learning about the basics of how a computer reads data is important. Anybody can learn a programming language if they are taught how, only half of those same kids probably still will not understand how the computer reads it and interprets it. Without that knowledge it's like teaching a person words but not how to complete a whole sentence.

    2. Re:Teach 'em the basics by Gaffod · · Score: 2, Interesting

      You could expand this to include concepts and the more obscure (but important) terms regarding computers. There is no point teaching what a CPU does and the rough differences between single and multi-core: That is trivial for a motivated, observant person to learn on their own; they have access to the thing and can play around with it all they want. What they don't have access is the inner workings of large networks (both corporate and the Internet itself) as well as the history of computing.

      Again, it is irrelevant whether they have a good grasp of history at the end of it, and there is probably little reason to go for that. Just 9th grade is a short time and students have other classes to worry about. What matters is giving them exposure to the history, so that they hear about things they probably wouldn't have heard of reading on their own. The key is to have students recognize that there is a long history of the field which is, for lack of a better term, "history" which can tell us much about why things in computing today are the way they are.

      With regard to the programming language, I'd suggest the same strategy. Explain the basics, don't go in details. Really teaching a language is a 2-3 year long dedicated course for undergrads, you would underwhelm ninth-graders if you tried to teach everything.

  4. Bandwidth, Cells, Broadcast, Caching. by RichMan · · Score: 3, Interesting

    Discuss the mediums they use.

    The difference between text and email routing and voice routing. Store and forward vs streaming. Caching.
    How Cell provisioning works in wireless networks.

    How search works, how the electronic maps work with overlay data. How an electronic store works. How bank/cash machine networks and cash registers work securely. How the bank card system works.

  5. Focus on logic and algorithm development by Anonymous Coward · · Score: 5, Insightful

    Programming can be thought of in two different aspect

    1) algorithm development - the part of the solution that requires the most logic, problem solving, and creativity.
    2) code development - taking an algorithm and translating that into code.

    I would focus more on the first. It's problem solving capabilities that are going to get children somewhere, not the ability to write code. (not that this part is unimportant!).

    So maybe you could present this in several stages. Work together to solve a problem of some sort, then make the whole class responsible for developing a program.

    In on of my college c++ classes, there was no individual assignments. EVERY assignment was broken down into parts that several groups had to complete, then a different group would be responsible from "compiling" all of our functions/source code and actually compiling it into a program. Talk about group dynamics. Through a bunch of noob programmers together and grab the popcorn!

    It was a learning experience for sure.

    1. Re:Focus on logic and algorithm development by quanticle · · Score: 2, Insightful

      Wait, you didn't get to compile you own code? Then how did you learn from your mistakes? Moreover, how did this experience prepare you for programming on anything besides a circa 1970 mainframe environment?

      In my experience, the best way to learn programming is to experience your mistakes. If someone else is responsible for compiling your code you're not being exposed to your mistakes, hamstringing your ability to learn.

      --
      We all know what to do, but we don't know how to get re-elected once we have done it
  6. why not by convolvatron · · Score: 2, Interesting

    teach them some fundamentals...what is a bit, what is a tube, how the tubes get plugged together,
    maybe how dns works at a high level just to give them some example of a simple distributed system,
    and give some meaning to web addresses.

    what a trivial von-neumann machine looks like

    what a program is at a high level, how images are represented and manipulated.

    how to write a simple game in something like scratch.

    what you describe seems pretty tortuous for a 9th grader (learning gimp, ooo), even for one that
    has an interest

    actually give them some semantic reference for dealing with computers, rather than teaching them
    about the details of the current crop of open source menu-driven applications

  7. It's to bad in the usa we don't have time for this by Joe+The+Dragon · · Score: 2, Interesting

    It's to bad in the usa we don't have time for this as we need to teach the test (not talking about a IT One) and even in a IT field we need to move away from the MS type tests and text books and look at real world stuff like

    *Dealing with old software and hardware mixed in with new stuff.
    *How bad it can be with super locked down systems and why people need to work around the lock downs.
    *Why long and complexity password setups don't work when you need to change it each 30 days.
    *Why you should not buy the cheapest hardware out there.
    *Building your own systems vs buying cheap dells and others.
    *GNU/Linux working with windows systems / software
    *Networking
    and more.

  8. moar python by tcjohnson · · Score: 2, Interesting

    I'm all for teaching programming... but I'm not sure you can do a respectable job of python in the time you'd have in a course like this. If you did, I'd teach a small subset, like python's turtle library.

  9. Database Introduction by Anonymous Coward · · Score: 4, Informative

    This might be a good time to begin introducing the basics of data storage and retrieval. SQLite is already available from a standard Python installation, it might be a good candidate for introducing the subject while building on the Python foundation from the prior grade.

  10. I blame Kanya by magusxxx · · Score: 5, Insightful

    I think it would be very important to include a section on ethics. Yes, it can be funny to anonymously include funny messages in your code...until your boss reads them. Yes, it's sometimes considered appropriate to do a half-ass job of fixing a coding error...until you realize that code controls someone's pacemaker. Ethics, like good manners, haven't followed us into the 21'st century as much as I would have liked.

    --
    Care killed the cat, but satisfaction brought it back.
  11. cat gut sung by Anonymous Coward · · Score: 2, Interesting

    What's fascinating right off the bat is I don't think many public schools here in the U.S. would institute lesson plans involving free and open-source software.. most use and/or are funded by commercial software. Good for you!

    I would suggest a foray into properties of electricity and something step-by-step about how computers are designed to work, and in particular the physical topology of interconnectedness and internet. Something beyond 'This is the RAM, this is the CPU', while not transmuting into a seven-plus-step networking layer. It's surprising the amount of language programmers/coders I've run into that just don't quite 'get it' about how fast a world's worth of computers network & the dynamics of the magic box that can speak to another magic box halfway around the world in 1/10th* or less of a second!

    * INCREDIBLY broad margins** here. It still bamboozles me though. And that's why passing on accurate knowledge is so important, for the world of today and tomorrow. Because it bamboozles me.

    ** Also has something to do with the ISP semipoly throttling traffic rates because they want more money? Discuss.

  12. web course by ralphdaugherty · · Score: 4, Interesting

          Your course should be online and continuously developed, in part driven by responses / challenges from the students.

          It is ironic that a course on using computer communications would be thought of as being taught from a textbook. There are no good reasons to publish a textbook and many bad ones.

      rd

  13. Practical usage. by Anonymous Coward · · Score: 5, Insightful

    Teach them practical computer usage; all the knowledge of BASIC in the world won't help if you can't make spreadsheets etc.

    Also teach them internet etiquette- why tone of voice isn't as easily conveyed, why grammar matters, and why there's no such thing as a free lunch (even if you forwarded it to 50 friends).

    1. Re:Practical usage. by BangaIorean · · Score: 2, Insightful

      MOD parent up. While not all the ninth-graders will opt for a career in IT, almost all of them will have to deal with computers in some form or the other! Much better to teach them spreadsheets, how to use the power of the WWW effectively and safely, basic and simple databases and task automation, etc. In my view, teaching such young kids these things is far better than teaching them programming.

  14. Office software by airfoobar · · Score: 2, Interesting

    I'm all for teaching kids programming, and I'd love to see them applying what they learn to solve problems in other courses as well. For instance, it would be great if they were encouraged to use their programming skills to solve maths or physics problems from their other courses. This implies programming is turned into a useful tool rather than some theoretical thing that they forget the day after the exam. Imho, it's better to show them how to solve simple, practical problems than to try to cram in their heads how qsort works, for example.

    OpenOffice is nice, however I really recommend you teach them some LaTeX, which is also a very useful tool to know.

  15. automation by swanriversean · · Score: 4, Insightful

    Whatever route you take, at the end, make sure the students have actually automated some task, understand the value of it, and can do it again.

    Give them some big piece of tedious work, and make sure they can write a little program to do it for them.
    Better make sure they understand how to work iteratively and test their results too.

    A society filled with regular office workers who can use a computer to automate their tasks will be much more productive, and consequently richer.

    --
    Be who you are and say what you feel, because those who mind don't matter and those who matter don't mind. - Dr. Seus
  16. How to type...... by cervo · · Score: 3, Insightful

    When I was in 9th grade I took typing class and I turned out fine. Typing is actually useful for instant messaging, web surfing, programming, doing homework assignments, etc... I would say if they don't already know how to type that is the point to teach them....

    After that something similar to QBasic where you can have fun and learn programming concepts would be good. As has been mentioned Python is a good choice. Although you need a nice fun graphic library similar in scope to the QBasic graphic libraries to go with it. People like to make for loops, while loops, and various shapes.....watching the special effects, and cheesy sound effects........

  17. Wrong angle. by Steauengeglase · · Score: 5, Insightful

    While I'd love to see every 9th grader leave with at least some general competency in my field, I also have to remind myself that 'IT' is just as much a lifestyle choice as it is a career path.

    Looking at new hires, these new so-called, 'digital natives', I see bigger, glaring problems. They can't compose a simple e-mail. You can make all the arguments that the-times-they-are-a-changin', but doesn't make your company look like any less of an ass when an employee sends a client or customer an e-mail saying something like: HEAR R UR TAX DOX 4 2010, HOPE ITZ N TEH RITE FORMAT! LOL!

    I'm sick and tired of seeing JeffKs come through the door.

    1. Re:Wrong angle. by Steauengeglase · · Score: 4, Insightful

      OK, now that I've spent out some nerd rage, forget basic programming; just teach them Discrete Math (and/or Logic). I didn't get this until college and it is a real shame that we don't teach it in every High School in the nation, not just GT programs or whatever they call it these days. It is almost a shame, we teach chemistry to millions of students who never use it after finishing the course (excluding SI), but we don't teach them something they should know every time they pick up a newspaper.

      If there is still some time at the end of the year, let them try their hand at something like Karel the robot.

  18. Re:Walk before you run? by takowl · · Score: 5, Insightful

    Before you teach someone to drive a car, how about some time taking it to pieces, then showing them how to reassemble it, with a detailed explanation of what each bit does. Then, once it's working again (and they really understand it) they can start actually learning to use it.

    The basics of how something works are often not the best place to start learning about it. Those details are largely irrelevant to most people. Learning a high-level language means they can get things done, while learning to think in a logical fashion. For those that want to go into more detail, they can go 'under the hood' to see things like "memory addressing modes" later. Just like we don't expect people to learn the basics of a fuel injection system before starting a car.

  19. Re:In 2010 by weicco · · Score: 2, Insightful

    Or first... Well, I think you know what. That thing which involves bees and flowers.

    --
    You don't know what you don't know.
  20. Discrete Mathematics + C/Assembly by Anonymous Coward · · Score: 3, Interesting

    Getting the kids closer to the bare metal will accomplish two things:

    First, it will establish a clearer connection between the hardware itself and the algorithms used in CS. Using heavily abstracted languages like Python or Java is a good hook to pique their interest and show them what's possible, but there is no substitute for learning the ins and outs of registers, memory allocation, pointers, and how machine code works. Assembly has no rival in teaching how to write clean, efficient code.

    Second, by teaching kids about math not covered in standard math classes, you will improve their critical thinking skills and problem-solving approaches. Fields like formal logic, set theory, and boolean algebra have many uses beyond the classroom and teach a way of thinking that is lacking in other curricula, at least in the US.

    Just as an aside, when I was in college they changed the track for CS majors from C->C++ to Alice->Java. I could clearly see a difference in how the C kids went about troubleshooting/debugging as opposed to to the Java kids. The C set tended to read their code more carefully and put more time into pseudocode and stub functions etc. The Java kids just tended to pound out the code and trust the compiler to save them. Not saying that's the case everywhere, just my 2 cents.

  21. dos by bakamorgan · · Score: 2, Insightful

    They need to know dos commands. I knew this student that was in a cisco glass and asked him to use ipconfig to find the ip address of the machine. The first thing he did was go to google and type in ipconfig because he didn't know what it was. He said he didn't know what that was and they havn't taught him that since hes only in the first year of his cisco class....WTF!!!

    1. Re:dos by Tanuki64 · · Score: 2, Funny

      Both is correct. Or incorrect. Depending on what OS you are. ;-)

    2. Re:dos by Nethead · · Score: 2, Informative

      They need to know dos [sic] commands.

      DOS never had an ifconfig, ipconfig, or any network interface command. It was only through an add on or a TSR program that it could talk over a network. The closest thing DOS had was the LapLink type commands added on very late to bring up a point to point network with another host via a serial or printer port.

      There were programs such as MS Network Client that would run in conjunction with DOS but DOS itself never understood networks.

      --
      -- I have a private email server in my basement.
  22. "IT" shouldn't be a class, it should be wholistic by davidwr · · Score: 3, Insightful

    Correction, basic IT skills should be integrated througout the curriculumn in school grades. If there needs to be a "class" in a particular skill it should be well before 9th grade.

    "Basic" IT is a life skill not an academic discipline or a career skill. We're talking everything from using a mouse and a keyboard up to how to type up and format a letter or use a basic spreadsheet using any common word processor or spreadsheet. We are also talking the basic, platform-agnostic skills of email and social networking.

    Now, some students will want to learn IT as a career skill or they will want to learn various aspects of computers such as linguistics, higher maths, etc. as an academic discipline. Others will teach themselves various aspects of computing and IT for pure enjoyment. More power to them. But as for school, everyone should be learning the basics as soon as they are old enough for the skill to be valuable, and schools who offer trade/vocation skills classes or college-prep computer classes should offer them as electives.

    In the Untied States, good career-training classes include anything that leads to a certification like CompTia/Microsoft/RedHat or that leads to an immediately marketable job skill, such as web design, web server operation, programming in the language-de-jour, basic electronics. These all prepare students for jobs immediately after graduating high school. Pre-college classes would include programming or electronics that have a heavy theory or history emphasis, and other more-theory-less-practical classes.

    --
    Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
  23. As you'll be introducing programming... by kev.lee.wright · · Score: 2, Interesting

    You could do a *lot* worse than Kojo (http://www.kogics.net/sf:kojo) Which has already had great success in India, and should me more approachable than Python for absolute novices.

  24. Stop skipping the fundamentals... by Assmasher · · Score: 3, Insightful

    ...teach them how basic computers work, then teach them the principles behind how software works, THEN teach them about things like IT.

    --
    Loading...
  25. Time's arrow by westlake · · Score: 3, Informative

    Yes and while your at it toss out the mouse and the graphical UI. Learn how to use the computer first. Then learn how to enjoy the computer later.

    The child of five who began with Win 95 is twenty years old with a child of their own.

    You are not going to hold the attention of a ninth grader with tech that they will never see in use outside your classroom.

    Learn how to enjoy the computer later?

    I would be interested in knowing what books you would assign as requited reading in "English Lit."

    1. Re:Time's arrow by MadMorf · · Score: 2, Informative

      You are not going to hold the attention of a ninth grader with tech that they will never see in use outside your classroom.

      Then this person should not work in IT.
      And won't need the training the OP is talking about.

      If they don't work in IT, they only need to learn how to use a mouse and keyboard.

    2. Re:Time's arrow by nacturation · · Score: 2, Funny

      I would be interested in knowing what books you would assign as requited reading in "English Lit."

      I would assign Romeo and Juliet, though that would be on the unrequited reading list.

      --
      Want to improve your Karma? Instead of "Post Anonymously", try the "Post Humously" option.
  26. In what country? by hsmith · · Score: 3, Funny

    In the USA, we teach to the standards tests - so that "outside the box" thinking that programming requires is a no go. Hey, nice dream world though.

  27. Re:Agreed, good data redundancy is very important. by Yvan256 · · Score: 5, Funny

    I agree, good data redundancy is very important.

  28. Basic. Electronics. by Vegeta99 · · Score: 5, Interesting

    When I was a high school student, we had to take either an Introduction to Computers class or Basic Electronics.

    I know we're talking India here, but the picture I'm getting is these kids can probably "operate" a computer just fine - enough to be an office lackey. But what about if it breaks? My parents used to go on and on about how "good" I was with computers, and they now do the same with my sister who's 10 years younger than I. Well, there's one difference. In high school, I took Basic Electronics instead of "Introduction to Computers".

    Intro to Computers was basically a how-to-use-Windows class (all the computers were Apple until this class). They taught you basic use, how to not "catch a virus" - you know, not click Yes without reading. Nothing exciting. In Basic Electronics, it was even less exciting. We had textbooks. We learned the basics of electronics theory, did fun little diagrams of circuits with an arrow, "What's the voltage and current HERE?" and by the end of it, we were building digital alarm clocks, strobe lights, etc. We learned first hand why you didn't use an underrated capacitor, and we learned what happened when you plugged one in backwards. We learned to solder (and do it correctly), we learned to use resist pens to make cheap-o circuit boards, and once the school had the money, learned how to do it with a laser printer and transfer paper.

    My poor sister has to come running to me when it's anything worse than a blue screen on her computer. She'll never be taking out the soldering iron. But what's that class meant to me? I'm a law student with a bachelors' in human development. It's certainly not going to be used by me at work. But:

    * When my dad's cursing about the damn car with a check engine light on, and how back in the old days they walked uphill both ways to the parts store and could tell what was wrong just by listening, I break out my scanner and a multimeter, and the car tells me more clearly than a good ear ever could.
    * I've never once had to pay for a repair man. When I was younger, I was shocked how much a family friend would want to pay for me to fix their VCR.
    * I have never had to hire a company to run the LANs at our student housing properties. In fact, I usually return over school breaks to fix whatever nonsense the students at Penn Tech thought would get their internet connection working again (torrents are blocked).

    I could go on, but you see my point. You could help your students greatly with just some bare-bones technical know how. They might find it a little boring at first, but it just may help out their employment prospects a little later down the road. The basics is where its at. Just like literacy. You don't teach them the alphabet and then throw a dictionary at them and tell them to get crackin'. You teach the alphabet, then a little bit of sentence structure, and you let them pull themselves up by the bootstraps.

  29. Only Jesus Saves by mangu · · Score: 5, Funny

    the 11th Commandment: "Thou shalt make backups"

    Sorry, that was the OLD Testament. According to the NEW Testament, only Jesus saves.

  30. IT as it relates to regular people by RulerOf · · Score: 2, Informative
    Language -- written and spoken -- should be taught in language classes, IMHO.

    People should really be taught a few things that relate specifically to using computers in business. The day when I no longer see a Word document that uses multiple, non-aligned TABs to put words on the right side of a page that are supposed to (but definitely do not) align with text a few lines above instead of using a hanging indent (or whatever they're called), the day when I don't go to fill out the underlined portions of a document and find that all I do create a separation in the underscores that were used to create it, the day when I don't royally fuck a spreadsheet because someone didn't lock a cell..... well the point is that such a day can never come soon enough.
    1. Teach people how to read domain names. Pretty much all the non-IT folks I know wouldn't understand that "google.images.com" isn't owned by Google.
    2. Teach them what a certificate error really means.
    3. Teach them how to identify when someone's trying to steal their shit.
    4. Don't teach good password policy; they won't remember their passwords. Teach them how to use a password manager instead. It could be a password manager that uses dictionary words and still be a gazillion times more secure than what they'd do otherwise.
    5. DO NOT TEACH TYPING. It is a waste of time. Typing is best as an acquired skill or one that is self taught. No one "learns" to type in the span of a lesson provided by a classroom environment.

    There's a multitude of items that could be added to this litany, but I'm sure anyone here could get the point.

    To say the least, kids won't acquire anything exclusively through the classroom if you teach them how to open up Word and write a letter. They already know how to do that shit. What will be useful to them is if you teach them about the features of the program that exist but that they'll forget how to use. Seriously. If they at least know that they can use hanging indents or track changes, then at least they'll know when to go hunting for how to do it again when they find a need for the feature at a future point.

    I've found that, over time, someone who knows what tools he could use to accomplish a task tends to be more adept at getting things done rather than the person who uses the same tool for everything just because he knows how to use it so well.

    --
    Boot Windows, Linux, and ESX over the network for free.
    1. Re:IT as it relates to regular people by lordlod · · Score: 2, Insightful

      I strongly disagree, typing should be learnt by everyone and it is possible to teach it. Saying that it should be learnt at home is great in theory but doesn't work in practice. You could make the same argument about reading but we still teach it in schools because people don't learn it at home.

      A proper typing course as part of the curriculum will get over 90% of the class up to at least 25wpm in a semester. That's touch typing and not looking at the keyboard. I know because I used to go to a school that ran them.

      Once people have the basics regular typing will increase their speed. Expecting people to just pick it up leads to people two finger typing at 20 wpm with multiple errors in every sentence. Imagine the productivity boost for society if everyone in an office could actually type properly.

    2. Re:IT as it relates to regular people by wonkavader · · Score: 2, Insightful

      "Don't teach good password policy; they won't remember their passwords. Teach them how to use a password manager instead."

      WRONG WRONG WRONG! Not on the password manager, but on not teaching password policy. Children need to understand that passwords should never be shared so as adults they'll see that as an axiom. If you went to college in the digital age (and worked in any support situation) you have seen the effects of couples sharing passwords and then breaking up. We all (as Slashdotters) know how that the best way to get someone's important banking password is to get their throwaway healthclub password -- they're usually the same. We know (from the movie wargames, and from real life, though in real life they're often far less hidden) that passwords are usually written down and close (very close) to the computer in question. The best place to find a password for the laptop you've just stolen is on a post-it note in the laptop bag.

      Kids don't need to be taught to make up good passwords (though that's not a bad thing), kids need to be taught what passwords are, why they're important, how people steal things using them, never to share them, assume people want them, etc.

  31. Programming is essential by Casandro · · Score: 4, Insightful

    Programming is essential. As a model language I would recommend an old BASIC with line numbers. This is close to how computers actually work, but still accessible enought for them. If you want to have an advanced course, teach Pascal.

    It is essential in our modern world that people, especially children, know how computers work and how to program them, in principle, at least. We also teach them how to do math, although they are very unlikely to multiply larger numbers without a calculator or solve an equation.

    The point is not to turn them into great programmers, but to give them a basic idea of how the things work. To make them able to estimate the limits of computers and how hard a certain task is for a programmer.

    The worst first language would probably be C(++,#, Java,whatever) or any of those new fancy languages, because they hide the machine to much and add lots of complicated concepts to get wrong.

    I find those "how to use application X" courses absolutely useless. Most of what you learn there will be found out equally fast by the children themselves. And everything will change at the next version of application X anyhow.

  32. Collaborative proof-reading by harmonica · · Score: 2, Informative

    The existing English book linked above http://itschool.gov.in/pdf/icttb8_eng.pdf should be corrected first. I'm not a native speaker of English myself, but there are some nasty mistakes in there ("several information", p. 28; "a facility in Internet", p. 31). Maybe there could be a wiki process to proof-read / improve the book? Come on, father of the Internet "Winton Surf" (p. 30)?

    Plus, the layout is really ugly. And sometimes wrong in weird ways ("2004" in column 2 followed by "originated" in column 1), a change of columns in the middle of the page (p. 7).

  33. Re:One Word by StoatBringer · · Score: 3, Insightful

    Vi

    --
    Cress, cress, lovely lovely cress
  34. Real basics: how to write, how to think by Kittenman · · Score: 2, Insightful
    Back off from vacuum tubes, bits and bauds. I've been in the business for 30 years (yeah, get off my lawn ... so?) and have been plagued by graduates who can't think coherently, listen to other people and put together a report/paper/spec. that is clear and understandable. Analytical thinking, mixed with good grammar and punctuation.

    I still program - among other things - and a well-written spec from a well-thought-out idea is a pleasure.

    Needless to say, these skills transfer to other walks of life...

    --
    "The greatest lesson in life is to know that even fools are right sometimes" - Winston Churchill
  35. Teach Them That Computers Are Not Magical Boxes by McNally · · Score: 4, Insightful

    Some of the responses so far seem to be based on the assumption that this is an information technology class for students who intend to specialize in the field. I'm assuming, rather, that this is intended to be a basic primer class offered to everyone and intended to give a general grounding in the subject.

    My suggestion is that you start by talking to adults to find out what they do and don't understand about the technology they use. In my experience (20-some years' worth of dealing with end users in various capacities) many, probably most, adults have an extremely limited idea how the technology they are using really works in the physical world and deal only with it as an abstract unit. And some of the assumptions they make based on the mental model they have built up lead to really bad decisions because they don't understand very basic concepts that the rest of us take for granted.

    To give an example: perhaps the single most misunderstood concept I encounter is the notion of storage. A great number of people seem to have no idea what actually happens on a computer when they save something. Generally they don't understand the difference between various types of memory (i.e. the difference between temporary short-term storage in RAM and long-term storage on a file system on some sort of disc or flash device. They have a very limited understanding, if any, of the filesystem and the concept of hierarchical organization. They are generally unable to distinguish between the various components of their system (e.g. display, CPU, input devices, file storage.) These are things that seem idiotically simple to most of us because we have completely internalized the knowledge, but deal with people who don't have the same underlying framework and you will soon see how it affects their reasoning about their computer.

    People with this sort of limited understanding of the computer as one abstracted whole, a magic box that they interact with, generally get along adequately as long as everything is working the way they expect but as soon as they run into any sort of exceptional circumstance they have virtually no recourse because they have no real understanding from which to base hypotheses about a possible cause for the problem or method for proceeding. Their ability to use their systems is therefore fragile and subject to disruption from virtually any sort of unusual situation.

    If you've worked in the field you've seen this over and over and over again and you can probably call to mind some of the unfortunate results of this kind of shallow understanding and "magical box" mindset.

    I think the best thing you can do for kids just getting started (though I think 9th grade is pretty late to be getting started) is to help them understand that computers are not magical and that their behavior is not arbitrary, that with the proper basic understanding of what's happening most of what follows can be predicted by fairly straightforward logic.

  36. The equivalent of the scientific method by seifried · · Score: 3, Insightful

    You should teach them the equivalent of the scientific method. Teach the kids how to learn and explore and how technology impacts them. This means giving them some fundamentals like what data storage looks like (hard drives, servers, things like facebook) and what it means to them (privacy, control of information, theft of information, etc.). Some basic networking and what encryption/authentication is and does (prevent eaves dropping, impersonation, etc.). Maybe some real world examples like social media sites, posting videos on youtube, and how once you have done that, because of the way the technology works they can never regain control of their data (only one person has to copy it and re-release it).

    Also _please_ teach them about copying/distribution and indexing of information so they get a basic understanding of why posting drunken photos online may not be a good idea long term. Teach them about privacy, fair use and so on.

  37. Python is not a "learning" language. by Jane+Q.+Public · · Score: 2, Interesting

    Personally, I feel it is a mistake to jump straight into an object-oriented, dynamic language without learning some basic concepts first. I think Python is a lousy choice for a first programming language. There is too much high-level "magic" going on that hides its underlying operation.

    C is also a bad choice, because of its syntax and reliance on pointers. Pointers are actually a fairly advanced concept, not suitable for beginners, not to mention that C's notation for pointers is inherently confusing. Yet you can hardly do anything meaningful in C without them.

    Several modern versions of BASIC (NOT .NET) and PASCAL are good choices: both languages were designed for education, both (unlike Python) have a consistent and straightforward syntax, both have straightforward means of creating structured elements (functions & procedures), and using both, you can then move on to more advanced concepts like pointers, objects, etc. Further, the "white space is significant" paradigm of Python is not something I would inflict upon young students. That is just a syntactical convenience for those who already understand how code blocks work. I believe it is totally inappropriate for beginners.

    Further, dynamic languages like Python and Ruby do not teach or enforce good coding discipline. Many people (myself included) feel that a more rigid language like Java is a major pain to code in, now that we have learned the more dynamic languages. However, I appreciate Java because it teaches discipline: how things are and should be structured, how classes interact, etc. Then moving on to Python or Ruby is great. They give you a lot more freedom and flexibility. But they won't teach you how to do things RIGHT. They allow you to be sloppy... even to the point of ruining your programming project. Jumping straight into the "sloppy" languages, without having first learned good coding discipline via something like Java, can lead to programmers writing disastrously sloppy and inefficient code.

    It seems that you may not have a choice about Python, which is unfortunate. In any case, I agree that loops are probably what you should move onto. And while someone else here made the point that specific sorting algorithms are less important today than they once were, sorts are an excellent way to demonstrate the practical use of loops, while also introducing the concept of algorithms.

    Also, besides backups I might introduce the important concept of version control. Either SVN or GIT might be suitable for teaching the basics. But I don't think I would go into much depth for people at this level.