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."
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."
backups are important.
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".
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
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.
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.
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).
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
That it will only get them into trouble, and to report all vulnerabilities anonymously
For justice, we must go to Don Corleone
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........
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.
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.
Or first... Well, I think you know what. That thing which involves bees and flowers.
You don't know what you don't know.
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!!!
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.
...teach them how basic computers work, then teach them the principles behind how software works, THEN teach them about things like IT.
Loading...
There are no good reasons to publish a textbook? Really? Are you assuming that the Indian public school system has 100% students owning laptops? Or even computers at home? Because that seems very unlikely to me. So how are students that aren't online to do homework? Print out the text, use it (or not) and toss it?
If they can only use it at school, it's like saying 'why bother with any documentation when the teacher is there to help them?'
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.
Vi
Cress, cress, lovely lovely cress
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
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.
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.
1. The importance of OSS, patents, and digital rights.
2. Historical background info, including the role of things like media, the courts (EFF) and hacker/infosec culture.
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.
"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.