Forgot your password?
Education Programming Python IT Technology

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

Posted by timothy
from the illustrated-primer dept.
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."
This discussion has been archived. No new comments can be posted.

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

Comments Filter:
  • by Anonymous Coward on Sunday August 29, 2010 @01:12PM (#33409404)
    backups are important.
    • Backups? We don't have to show you any backups! We don't need no stinkin' backups!
      • by davester666 (731373) on Monday August 30, 2010 @12:52AM (#33412490) Journal

        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?

    • by paeanblack (191171) on Sunday August 29, 2010 @01:47PM (#33409618)

      backups are important.

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

      Unfortunately, it was on the third tablet...

      • Re: (Score:2, Funny)

        by Anonymous Coward

        and there was no backup ;-)

      • by mangu (126918) on Sunday August 29, 2010 @03:25PM (#33410142)

        the 11th Commandment: "Thou shalt make backups"

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

      • Re: (Score:3, Interesting)

        by pjt33 (739471)

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

        • by Lord Kano (13027) on Sunday August 29, 2010 @06:07PM (#33410954) Homepage Journal

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


        • by kabloom (755503) on Sunday August 29, 2010 @07:45PM (#33411394) Homepage

          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.

      • by Kozz (7764) on Sunday August 29, 2010 @04:07PM (#33410354)

        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.

      • Re: (Score:3, Funny)

        by FatdogHaiku (978357)

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

    • Re: (Score:3, Insightful)

      by Anonymous Coward

      Backups are meaningless. Being able to restore is important.

    • Re: (Score:3, Insightful)

      by INT_QRK (1043164)
      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
  • by kevinmenzel (1403457) <kevinmenzel@g[ ] ['mai' in gap]> on Sunday August 29, 2010 @01:16PM (#33409424)
    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".
    • by sznupi (719324) on Sunday August 29, 2010 @01:26PM (#33409482) Homepage could certainly help those of them that will become an outsorced workforce.

      • Re: (Score:3, Interesting)

        by ddillman (267710)
        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.
        • by vlm (69642) on Sunday August 29, 2010 @01:37PM (#33409564)

          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.

        • Re: (Score:3, Insightful)

          by Silverlock (36154)

          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

    • Re: (Score:2, Interesting)

      by fysician (1883118)
      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.
    • I smell a method patent coming... "Proper use of language... ON THE INTERNET".

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

    • Re: (Score:3, Insightful)

      by im_thatoneguy (819432)

      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 pe

    • 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 d
      • Re: (Score:3, Insightful)

        by lordlod (458156)

        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

      • Re: (Score:3, Insightful)

        by wonkavader (605434)

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

  • by mikein08 (1722754) on Sunday August 29, 2010 @01:20PM (#33409452)
    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
    • Re: (Score:2, Insightful)

      by jasonjas (774456)
      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.
    • by Casandro (751346) on Sunday August 29, 2010 @03:45PM (#33410240)

      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.

  • Document your cheat codes! Only proper documentation will help the later generations when the XBox 'Retro Edition' is released and they need the cheat codes. ;-)

    Seriously, document your code, your processes, etc. You never know when you'll need to go back to it ... or someone will accuse you of 'misappropriating' your data or ideas and you'll be able to prove them wrong. You can't teach these good habits too early.
  • by RichMan (8097) on Sunday August 29, 2010 @01:22PM (#33409462)

    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.

  • by Anonymous Coward on Sunday August 29, 2010 @01:24PM (#33409464)

    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.

    • Re: (Score:3, Insightful)

      by quanticle (843097)

      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.

  • why not (Score:3, Interesting)

    by convolvatron (176505) on Sunday August 29, 2010 @01:25PM (#33409476)

    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

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

      I'm not so sure about that. Our 8th grader has been using Gimp for almost 2 years, and can do quite a lot with it, including working with masks and layers. She knows where to search on the web for gimp tutorials when she wants to do something new, and has mastered many techniques. She also uses OOo for assignments (nothing too complicated, of course), and can use Inkscape for basic vector graphics. FWIW, she started doing these things in 7th grade, and her proficiency keeps increasing with these and other t

      • by vtcodger (957785)

        All that may be true -- and good for your eighth grader. Nonetheless, presenting a class of anything other than budding geniuses with the most notoriously user unfriendly interface in the Open Source world seems imprudent. Maybe Kolourpaint instead of the Gimp?

        • sure, i'm not saying no 9th graders can use gimp

          but i would hate to be a 9th grader with no clue stuck in a class during the week
          that someone was trying to teach me gimp

        • by jedidiah (1196)

          Don't be a moron.

          Gimp is an art creation program. Despite all of your whining about it's interface, the artistic
          ideas behind those interfaces are still far more technical than the interface itself. What you're
          really whining about how Gimp is not a Photoshop clone.

          The problem with Gimp isn't that it is "user hostile" but that it represents a more advanced
          skill level in the underlying subject area.

          It's probably unwise to shove it at art-n00bs of any age.

          Although a 9th grade artist should have no problem with

  • by Joe The Dragon (967727) on Sunday August 29, 2010 @01:26PM (#33409486)

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

    • I don't know where you went to school but my HS had a computer engineering/networking classes where we got to take apart and fix computers and components, learn the basics and even try to get A+ certified as an optional extra if we were interested. "Teaching the test" is a mantra all to often repeated by lazy teachers that don't want to risk teaching he subject as they see fit and people who have been out of the education system for so long they don't know whats going on in there anymore. The teachers I h
  • moar python (Score:2, Interesting)

    by tcjohnson (949147)
    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.
  • by Anonymous Coward on Sunday August 29, 2010 @01:27PM (#33409490)
    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.
    • by scrib (1277042)

      Wish I had the points to mod parent up!

      The basics of simple, relational databases would be a great thing to introduce. I learned sort and search algorithms when I was going through school, but those wheels have long since been invented and probably ought to just be tools.
      "SELECT x FROM y WHERE z ORDER BY x.a" is a much better real-world sort and search lesson than implementing a binary tree or a hash table. Databases make you think about types, data structures, and iterating through returns values.

      A post be

  • Inkscape is an excellent FOSS vector graphics program. We use it all the time, and our 8th-grader also uses it.
    Teaching some simple shell scripting might also be useful to complement the Python course.
    You could also think about one of the FOSS mind-mapping programs, such as View-Your-Mind. Kids should be encouraged to break down concepts in this way at an early age.

    Scribus might be something to introduce in a later class, after they have mastered the ideas of material creation and entry, and wish to fo
  • I blame Kanya (Score:5, Insightful)

    by magusxxx (751600) <{moc.oohay} {ta} {0002_xxxsugam}> on Sunday August 29, 2010 @01:29PM (#33409500)
    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.
    • While I completely agree (and I've hoped for such a thing for a long, long time; it just seems so obvious), I wouldn't be surprised if there were contingents who find simple ethics far too altruistic to deserve of a government dime.

  • cat gut sung (Score:2, Interesting)

    by Anonymous Coward

    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 seve

    • by vtcodger (957785)

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

      No so actually, but there is too much software required by teachers, staff etc that runs even worse under OSS than it does under Windows for OSS to really be viable. Programmers and their managers have created an utter shambles because of their inability to promulgate meaningful standards and

  • web course (Score:5, Interesting)

    by ralphdaugherty (225648) <> on Sunday August 29, 2010 @01:31PM (#33409510) Homepage

          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.


    • It is ironic that a course on using computer communications would be thought of as being taught from a textbook.

      I also think you should have them learn by doing. Let them get their hands dirty trying to accomplish a specific goal.

      I know it's problematic and potentially expensive, but if I were teaching about computers, the first thing I'd do is give a student a bunch of computer parts and an install CD. Make a project out of screwing the motherboard into the case, installing RAM and the video card, and hooking up all the drives. Troubleshoot any problems that arise, actually explaining how you figure out what the

  • Practical usage. (Score:5, Insightful)

    by Anonymous Coward on Sunday August 29, 2010 @01:32PM (#33409514)

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

    • Re: (Score:2, Insightful)

      by BangaIorean (1848966)
      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.
  • by Ecuador (740021)

    Why is this even a question. There is an entire language designed for education. Give the kids a logo textbook!
    Well, ok, I am joking, but I would not be if logo got some decent upgrades! For example instead of a triangular "turtle" you could have a cool 3d photorealistic turtle of unspecified gender and ... wait for it ... four elephants on top of it, holding a disk!

  • My CS degree's discrete math curriculum? Despite being called "math" it didn't really fit into the stereotypical algebra-geometry-trig-calc sequence, and most (all?) of it could be handled by a high school student.

    Sorting, info theory (Well, OK some calculus will have to be glossed over), logic, set theory, graphs, game theory...

    Yes I know you're trying to each them "IT" as in password reset and pulling and terminating cables, but "CS stuff" like discrete math provides an excellent background, and encourag

    • by Animats (122034)

      My CS degree's discrete math curriculum?

      I'm not sure how useful discrete math training is today. I have a lot of it, because I've done proof of correctness work and went through Stanford CS in the mid-1980s. Number theory and combinatorics, beyond understanding "big-O" notation, hasn't been that useful. Automata theory I've never had a use for. But I've needed to get up to speed on number-crunching, which Stanford CS totally ignored back then. (That was when the "expert systems" crowd was in power. I

  • Office software (Score:2, Interesting)

    by airfoobar (1853132)
    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
  • automation (Score:5, Insightful)

    by swanriversean (928620) on Sunday August 29, 2010 @01:37PM (#33409566)

    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.

  • One of the finest lessons any incoming Freshman/woman could ever learn. And also the best sites for downloading Monga.
  • by pinkj (521155)

    Which other notions from computer science can be introduced to this audience in this manner?

    I think an introduction to the history of computer science would be worthwhile. Knowing the history of a subject helps with understanding the present state of it and helps give context for the content to be learned.

    • by vlm (69642)

      Knowing the history of a subject helps with understanding the present state of it and helps give context for the content to be learned.

      Also, "everyone knows" the average IT career is about as long as a pro football linemans career and marketing takes advantages of that. Knowing that everything "new" is just a rehashed version of something "old" is an insight that can help them throughout their life, not just in decoding IT marketing trends. Especially when they predict how it will turn out this time, based on knowing how it turned out last couple times. Once you know the cyclical nature of trends, you can position yourself to be ahead o

  • How to type...... (Score:4, Insightful)

    by cervo (626632) on Sunday August 29, 2010 @01:48PM (#33409628) Journal
    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........
  • Wrong angle. (Score:5, Insightful)

    by Steauengeglase (512315) on Sunday August 29, 2010 @01:52PM (#33409644)

    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.

    • Re:Wrong angle. (Score:5, Insightful)

      by Steauengeglase (512315) on Sunday August 29, 2010 @02:09PM (#33409736)

      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.

  • by Anonymous Coward on Sunday August 29, 2010 @01:58PM (#33409686)

    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.

  • dos (Score:2, Insightful)

    by bakamorgan (1854434)
    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!!!
    • Re: (Score:3, Informative)

      by Nethead (1563)

      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.

  • by davidwr (791652) on Sunday August 29, 2010 @02:04PM (#33409716) Homepage Journal

    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.

  • You could do a *lot* worse than Kojo ( Which has already had great success in India, and should me more approachable than Python for absolute novices.
  • I tend not to think of programming at all any more when I think of "IT". To me, IT is more about assembling networks, clients and servers, databases/storage and firewalls. I'd teach the ecology of an OS rather than how to write one.

    I would make algorithms should be part of a math class - to me the natural place is to teach it is alongside algebra and logic (where teach the difference between a=b the statement, a==b the question and a:=b the action).

  • by Assmasher (456699) on Sunday August 29, 2010 @02:10PM (#33409744) Journal

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

  • Teach them that e-mail is like sending a postcard, and encryption is required to give it a protective envelope. Teach them that all network connections and authentication should be done with SSH/SSL/VPNs - show them what can be done with a packet sniffer. Teach them about checksums and digital signatures, and how they should be used to confirm download integrity and confirm that sources for files or e-mail are who they say they are - show them man-in-the-middle attacks. Teach them to secure their hard dri
  • Teach them how to deal with bean-counting CFOs who second guess every critical system upgrade, every technology project and every additional head you need to add to support the new systems *they* asked for. Teach them how to say NO to the bonehead Sales executive who thinks everything can be delivered faster if you just make enough phone calls. Teach them how to tell the business users that you can NOT successfully automate an undocumented ad hoc process.

  • Force someone to define "ICT" first. Wikipedia says it's a buzzword for companies saving money by using VOIP phones, and I doubt this is what the course is about.

    Possibly it's a new name for "IT" ... but then noone seems to know what that means, either.

  • Kids in India may be more serious about school than in the US. I have no way of knowing. But any class lesson that can be made into a game or contest is more likely to get kids attention. Perhaps setting up small groups and having them compete to complete some sort of task for a reward might get them deeply involved.

  • Young kids who use the computer seem to have a grasp of how to use it for games and social media, but don't really seem to understand it is as a tool. There is no abstractions. They associate a program with a purpose, and that is that. There was a time when the internet was AOL, then IE, then Facebook. To fight this we much teach concepts.

    For instance, any word processor can be used to teach to write a paper. The only reason people get fixated on a specific word processor is because we teach how to c

  • Oh, and how to submit bugs to projects!

    What a wonderful initiative!

    I know, some of my fellow US countrymen will lament how our schools wasted billions on technology. And they are right, you know, if you look at the average US worker who is barely competent in technology (MS=PC/Internet) and could easily be replaced by a very short shell script.

    You are already way ahead by focusing on FOSS. Add a short section on how to install a FOSS system and how to submit good bug reports, and I would say you a
  • You may be interested in the Teach Scheme! [] project. The idea is to teach the programming fundamentals with Scheme where the syntax is simple and use those experiences as a scaffold for more complex languages. The project offers both a LGPL Scheme interpreter, Racket [], and an online textbook, How to Design Programs []. Follow up with How to Design Worlds [], and students could be making games in no time! An intro course to game design might give that touch of creativity you were looking for.
  • Be sure to teach them how ordinary base10 numbers are turned into base 2 (binary) and base 16 (hexidecimal) numbers. Then show them how base two numbers can be represented as electrical levels. Digit one as a voltage level (traditionally +5 volts in microprocessor electronics) and digit zero is ground (0 volts). Then show how a binary number can be transmitted over a wire by spacing the voltage levels at precise intervals and having start/stop bits. Explain how alphabet letters can be represented by num

  • by hsmith (818216) on Sunday August 29, 2010 @02:45PM (#33409938)
    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.
  • If the only learning options we present students by high school are "Introduction to Computers" and beginner programming languages, then we are only catering to the uninitiated and lowest common denominator. Schools need to raise the bar for all students, parents need to be more present and supportive of their kids, school boards need to be eliminated of corruption, and kids need to stop bullying and acting like a bunch of wannabe gangsters.

    While on the subject of improvement in schools, I think high sc
  • After thinking about it for years, one of the most useful things in I did school was geometry. Specifically, making geometric proofs was unbelievably useful. They required you to do two things:

    * think step by step
    * think about the person reading the proof, and what they needed to know

    When you're using computers you need to be able to, at a minimum, sequence your tasks. If you want to write good software, you need to be able to at some level understand what the person using your software is trying to do and

  • Basic. Electronics. (Score:5, Interesting)

    by Vegeta99 (219501) < minus author> on Sunday August 29, 2010 @03:12PM (#33410088)

    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.

  • by harmonica (29841) on Sunday August 29, 2010 @04:50PM (#33410598)

    The existing English book linked above [] 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).

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

  • by seifried (12921) on Sunday August 29, 2010 @05:52PM (#33410898) Homepage

    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.

  • by Jane Q. Public (1010737) on Sunday August 29, 2010 @07:04PM (#33411228)
    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.

Pound for pound, the amoeba is the most vicious animal on earth.