Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Education Programming Python IT Technology

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

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

  • 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

  • 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
    *Networking
    and more.

  • moar python (Score:2, Interesting)

    by tcjohnson ( 949147 ) on Sunday August 29, 2010 @01:26PM (#33409488) Homepage
    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.
  • cat gut sung (Score:2, Interesting)

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

    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.

  • web course (Score:5, Interesting)

    by ralphdaugherty ( 225648 ) <ralph@ee.net> 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.

      rd

  • Office software (Score:2, Interesting)

    by airfoobar ( 1853132 ) on Sunday August 29, 2010 @01:34PM (#33409530)
    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.
  • by ddillman ( 267710 ) <dgdillman@[ ]il.com ['gma' in gap]> on Sunday August 29, 2010 @01:34PM (#33409534) Journal
    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.
  • Re:web course (Score:1, Interesting)

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

    Agreed. Start here : http://www.w3schools.com/

  • by fysician ( 1883118 ) on Sunday August 29, 2010 @01:54PM (#33409662)
    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.
  • 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.

  • by kev.lee.wright ( 1889204 ) on Sunday August 29, 2010 @02:07PM (#33409728)
    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.
  • Basic. Electronics. (Score:5, Interesting)

    by Vegeta99 ( 219501 ) <rjlynn@@@gmail...com> 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 pjt33 ( 739471 ) on Sunday August 29, 2010 @03:30PM (#33410166)

    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 Gaffod ( 939100 ) on Sunday August 29, 2010 @04:04PM (#33410336)

    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.

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

And it should be the law: If you use the word `paradigm' without knowing what the dictionary says it means, you go to jail. No exceptions. -- David Jones

Working...