Become a fan of Slashdot on Facebook

 



Forgot your password?
typodupeerror
×
Education

Seeking Advice for High School Computer Curriculum 14

Cannon asks: "I have been hired to teach a high school computer class next year. It won't be a programming class, as another teacher in the district will teach programming. Otherwise, the design of the curriculum has been left up to me. I am looking for suggestions regarding what should (and shouldn't) be taught in a high school computer class. "
This discussion has been archived. No new comments can be posted.

Seeking Advice for High School Computer Curriculum

Comments Filter:
  • by Zurk ( 37028 )
    i'll second this one. the most least popular classes at my ex-uni and ex-school were the ones which had free thinking involved - pick your own project and do whatever you like. Those were the only ones at which everyone actually learnt something..since we were graded on the final outcome as well as each lecture (did your project work ? did the class approve of it ? were your presentations/research papers decent ?) it was difficult as hell but damn good fun.
    one good idea was to have everyone present 4 different proposals as small research papers/presentations and let the class vote on the final project to be selected. my own research presentation went on for 4 HOURS (and bored everyone silly - the average was about one hour) but it was a helluva learning experience..if youre interested in something you learn more.
  • It's been quite a while since my high school days (9 years and counting - tick...tick...), but if there is one thing that is needed now, more than ever, it is getting our kids to think for themselves. We should want them to question authority (not overrule it, but to question "why?" - and only overrule it if the answer is unjust), to question what they see on TV and on the internet. To question why they should drink Coke, eat McDonald's, or wear the "latest" fad clothing.

    With all the censorship and law issue going on in regards to the internet and computers, having the ability to think about issues in life without being led by the nose by corporate interests will be a skill worth having when they graduate and move on into adult life.

    Perhaps with this skill a future generation can lead our society to a saner level and away from what we are currently experiencing.

    So whatever you teach in that computer class, interject the idea of questioning into it. Don't let the kids get into the habit of always taking your word as the gospel truth - actively discourage it! Tell them about issues they may not be aware of, and discuss why they are problems, and how they may impact them as kids and as future adults. In short, be honest with the students.

    One other thing - we had at my high school a teacher who was honest like this - he got fired in the end. It seems the other faculty didn't like his views, and canned him. He stuck to his guns, and didn't waffle - while we lost a great teacher, we all had respect for him, and knew who was right in the end. So if teaching kids to think for themselves gets you in hot water, don't buckle under the pressure - stay your course, regardless of the outcome. Showing resolve against a system that does you wrong will leave a bigger impression on the kids than buckling under.

  • Here's a high school student giving some advice [ooh, me me! Apologies for that moment of obnoxiousness]. Well, of course, I'm also just a geek, but I think I can be impartial.


    The thing is, when you say the word router/hub/telnet/port, you start to freak people out. Explaining the internet would be a great thing...make people understand how it works, and maybe teach some basic curriculum on getting a server up and running, putting up content [NOT HTML! =)], and the like. Keep the 'net expanding.



    My $0.02. If you want more feedback, email me - ben@kescom.net [mailto]

  • I recommend you read about Seymour Papert's Constructionist learning theory. Seymour is an MIT Media Lab fellow, an author, and a teacher. He invented LOGO, the drawing-oriented programming language that made me into a programmer at age 10. He was a student of Piaget, one of the most important pedegogical thinkers. Find out all about him at his site: www.papert.org [papert.org].

    The basic thrust of Seymour's idea is that children want very badly to learn--about everything--but schools for the most part suck. If you let children investigate things and follow their interests, they will learn rapidly and want to keep learning. If you lead them by the nose, force-feeding them lectures and rigid textbook reading, they'll get bored and resentful.

    Computers offer a great opportunity for teachers to become guides facilitating individuals or small groups of kids to investigate the things a computer does. Show them how to interact with the machine. Give them things to do that will make them feel like they're discovering something, accomplishing something. Without fail, little Jane will ask how it all works, and that's when you crack open the box and tell them about CPUs and hard drives. Have them start making Web pages, and little Joe will ask how to do something advanced. That's when you say, "Sure, you can do that. You just have to learn about CGI." etc.

    The approach is up to you. The amount of freedom you want to give the kids is up to you as well. Check out Seymour. He's much better at explaining this stuff than I am.

    No matter what you do, however, do NOT teach them how to use spreadsheets, word processors, specific OSes, or anything else. There will be time enough for them to learn those miserable skills on their own. Teach them to love producing things, making things, learning how to make the machine do cool, useful, funny, spooky, profound things.

    Also, unless this is some sort of honors class, do NOT target things for "elite" students. There will be plenty of time for that clique-forming crap if they want to go on and study in college. I'm convinced computers are built for children, and not just the math junkies or the model airplane crowd. They appeal to kids in a way that will turn most children into engaged expert users.

    goodmike

  • Well, the initial post was a little vague as to what level of computing class this is supposed to be. If it's an intro level class I'd try and do a big section of compare and contrast of the three major OS families out there, Windows MacOS and *nix. Networking, routing, subnetting, these are all well and good but are not the universally needed skills in the world, even the computer world. I would think perhaps an overview of the structure of the internet, it's origins, and then drill down into concepts such as subnetting, heterogenous networking, topics the kids who do go into the computer world will need to know, and topics the other kids won't be wasting their time learning. Being rather close to the education world, a co-habitator of mine is a Jr High Librarian which means she's also in charge of their computers, I know that one of the primary skills lacking in these kids today is basic application skills. These kids do not have the skills or confidence to sit down and write a report, let alone a C program. If however it's going to be a chance for the ubergeeks to further themselves before college then get right into the Unix networking, but do them a favor and try and get it to be an Advanced Placement course so they can at least not have to repeat their curriculum in college.
  • Interesting points. If you have the machines (you didn't say anything about the budget/lab facilities) I'd set up a small LAN with Linux and Solaris x86 machines (to get an idea of the similarities and differences between Unix flavors) and a couple of Windows (98 and/or NT) boxes. They can set up Samba, route packets between two LANs (if you have the spare hubs/NICs), etc...

    I guess what I'm advocating is make the course "Introduction to Unix and IP networking". Teach the basics of navigating Unix, encourage those with programming experience to write little Unix programs and shell scripts. Teach basic IPv4 concepts--networks, subnets and netmasks, addressing, routing, how DNS works. Do as much hands-on stuff as budget and lab facilities allow.

    Also--I think sirket is a little off base--good vi clones are standard in every Linux distribution I've ever seen (nobody's forcing you to use emacs), the route ccommand is subtly different on almost every Unix flavor out there, and the GNU tools are something that practically every sane sysadmin makes sure to have around, especially in a multiplatform environment. If I'm setting up a Solaris box, I make sure and install enough GNU tools (less, gzip, screen, etc, and yes, Emacs) to keep me from cursing constantly as I try to administer the machine.

    -Doug

  • by DrZaius ( 6588 )
    There is a program called ITM (information technology management) that quite a few schools have implemented. Basically you get a class of elite geeks and let them do whatever they want for the year.

    For example, in my grade 12 class, last year, we set up a network of linux boxes with all sorts of services like dns and NIS. Another group of kids were working on robotic projects. A few others worked on web pages. Some people even had the opportunity to work towards their CCNA.

    I'm sure if you do some searches for ITM, you will find all sorts of information about it.

    There is one downside; the freedom allows lazy kids to abuse their time. There was a measurable amount of students who didn't do work all year long.

  • To make it a real educational experience, focus on ideas, not implementation. Teach the students what designers behind technology were thinking, and what led them to come to that solution for the problem. Don't teach them how to surf the web, teach them that the ideas behind the Internet are layering abstractions (Ethernet->IP->TCP->HTTP) and distribution (router only needs local map of network, not what whole internet looks like).

    Have the students come up with simple pseuodocode algorithms for finding the maximum element in an array, or how to multiply two numbers using only addition and subtraction.

    Put the students into groups and have them make a proposal for a new software product or a new web site. Then can make a mock-up of the site or program using storyboards or HTML. Have them talk with potential customers to design their interface

    Show them many different implementations of an idea, and ask them to critique it, such as a word processor - Word, WordPerfect, StarOffice, ed ;)

    I believe that many important ideas in computer science can introduced at a level easily grasped by beginners. Just figure out what are the central ideas behind something, and how you can relate them in simple language.

    One last thing - encourage the students to play with computers and learn on their own. If you can impart them with this quality, it will last them much longer than knowledge of how to do a query in Access.

  • Hmm... I understand your point about introducing a programming mindset, which I think is an important general skill (like learning liberal arts). But I think that we geeks can often forget how computer-illiterate most people actually are. Even in college (Princeton) most people have a fairly limited ability to get any real work done with, say, a good spreadsheet. These students will some day be typical, white-collar workers: management consultants, ad/marketing folks, etc. They have a real and serious need to develop these skills, but they will likely never have any need for C in their entire lives.
    I think the more important thing, though, is very much like what you were saying: it takes a long time to get good at programming. People who only take one computer course in their lives will not learn a useful amount of programming, so I think we would do better to focus on skills that they can productively learn in one course.
    --JRZ
  • As someone pointed out it's hard to suggest subjects without knowing the level of the course. Here's some I would use:
    1. History of computers
    2. Basic/Advanced Word Processing
    3. Basic/Advanced Spreadsheets
    4. Basic/Advanced Presentations
    5. Basic/Advanced Database work
    6. Integration between 2-4.
    7. Basic HTML
    8. Some sort of project maybe

    I would stay away from things like Unix, Networking etc except at a very very high level. That's assuming you're not teaching a bunch of grade 12 pre-University Computer Science students.

    Point 2 could include desktop publishing and 3 could include some accounting or science applications.

    The average nongeek student isn't going to care about any form of Unix, my sister uses my Linux box and can't understand why she needs to login to the thing. Remember KISS.

    Keep It Simple Stupid. A good thing to teach would be the ablitiy to reason and just to read the damn screen. So few people do that anymore.
  • Teach the kids the basics of UNIX systems. Try not to use Linux if at all possible because there are a variety of programs under Linux which do not work the way the rest of the Unices work. (Examples include the route command, the use of emacs over vi, and a variety of other GNU utilities that an OS such as solaris or hpux do not use.

    You should either teach them on solaris x86 or one of the BSD variants. This will give them the most power when they get out into the IT world and are faced with an E4500 with mutiple NIC's and they need to turn off routing.

    -sirket
  • Having graduated from high school two years ago, I have some ideas about what I would have liked to see in a computer class. I'm going to make some assumptions. Firstly, this class sounds like an elective so be clear as to just what kind of student your trying to attract here. If this is going to geared towards someone who knows nothing about computers except web browsing and hotmail make sure students know this before signing up. okay then, I'm assuming this class is for someone who knows basic computer hardware terms, and feels comfortable with basic computing tasks like installing an OS or what have you.

    1. computer hardware. talk about how various components of a computer work and interact. Not just a 'this box contains a cpu' but more of showing just how processor clock speed isn't the whole story to a computers speed and how a processor accesses memory(bottlenecks). Give students two weeks to put together class presentations on a computer topic like 'Athlon vs. PIII' or 'what actually is a mp3 encoder doing to wav files?'<---not hardware I know :)
    You could probably do a whole semester on hardware alone but it's not really what your would probably want to do. Maybe 1/2-1/3 of the semester.

    2. OS's I wouldn't bother with windows too much(students KNOW windows) but how about an introduction to Unix systems? I wouldn't spend a huge amount of time on this but I think it would be good to show basic commands and what everything looks like, maybe some BASH stuff
    Definitely, some X window stuff(which I'm sure would flare interest). (one little thing I show people who are new to linux is to type xmatrix --root in X. Having a screen saver like that as your background always gets a 'cool!' from people)

    3. Networking - spend a little time learning about networks (what a DNS server does ect.) and (resource permitting) have groups of students responsible for a computer and have them setup a couple servers and practice using what they've learned.

    Okay, finally I have always had a couple tips to keep classes like this interesting <rant>
    1. demand a lot from students, truthfully the more you expect the more you'll get
    2. keep it interactive and rewarding. no matter how good you are at lecturing, lecturing about some linux command or how to install a network card == sleepy time.
    3. allow students flexibilty to do their own projects(within reason) ]
    4. super important! with most projects tell students you'll give extra credit for doing something above and beyond the project.

    As an example of #4 a friend an I had to write a program in PASCAL when I was in high school. As a final project we had to create a non-trival type program. Instead of just doing something easy we devoted 5 hours a day over 2 1/2 weeks into making some really cool(full featured tron game in svga). Why you ask? Because we were going to get 10 extra points for making something in graphics mode! All it takes sometimes is a nudge. Well, enough ranting.</rant>
    I hope you find this somewhat informative, I think I'm going to go play that tron game for a bit :)

    Brett Gengler
    (EE student)

  • I would suggest some minor tweaks to the course outline in the parent post.

    Most notably, I would deemphasize the more application-oriented aspects of the outline (spreadsheets, presentations, and to a more limited extent, databases and HTML.)

    I would argue that kids are smart, and can figure out how to use commodity software on their own. A working knowledge of Office is a basic skill nowadays, but it is a skill easily imparted.

    Without going into too much detail, put it this way: What is the value of "knowing Office?" Appreciable, but not great. Knowing HTML? Greater, but the skill is becoming a commodity. Knowing C? C++? Java? Perl? Significantly greater. Besides teaching kids that will let them get some real work done on their computers, you will be giving them an early introduction to the programming mindset -- which, given the poor introductions I have seen at most colleges, is of considerable utility.
  • by JohnZed ( 20191 ) on Sunday March 26, 2000 @12:58PM (#1169754)

    I'm assuming this is intro-level, in which case, as much as I love Unix and Linux, I think they would be a pretty poor choice. People who will probably grow up to be white-collar workers need to learn real word processing, presentation, spreadsheet, and database skills much more than they need to know how to switch modes in vi. Basic computer concepts would also be important: how does the internet work? What is HTML? What is a microprocessor?

    I would encourage cross-disciplinary projects along the lines of the "choose your own topic" possibilities that others suggested. Have people prepare a web presentation with detailed charts and graphics about the growth of the internet or the changes in the use of computers in the workplace. If they are restricted to choose good, on-topic projects, everybody would learn from them.

    So, if I had 12 segments (weeks or whatever), I'd do:

    1. Brief history of computing
    2. Components of a PC
    3. Spreadsheets/Charts
    4. Presentations
    5. Databases (Access/Paradox)
    6. Networking basics (how file sharing works, a little bit about ethernet, using FTP)
    7. How the internet works (what's a server? where do these pages come from? What does a browser do?)
    8. HTML (nothing too fancy)
    9. More HTML, basic graphics (paint shop pro?)
    10. Security issues
    11. Social issues in computing
    12. Final projects/presenatations due

    It's a big help if you can emphasize hands-on learning, and that's part of what's so great about computer classes. Topics (like intro to networking or social issues) that don't lend themselves well to hands on work provide a great opportunity for students to hone their charts/presentations/HTML skills by using them to format simple research projects. This is more of a plan for a full-year high school class or a one-semester college class, I guess, now that I think back on how easy it is to waste time in high school classes.

    --JRZ

The Tao is like a glob pattern: used but never used up. It is like the extern void: filled with infinite possibilities.

Working...