Slashdot Mirror


Seeking Advice for High School Computer Curriculum

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

9 of 14 comments (clear)

  1. Re:Well teaching UNIX comes to mind by Doug+McNaught · · Score: 2
    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

  2. ITM by DrZaius · · Score: 2

    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.

    --
    -- DrZaius - Minister of Sciences and Protector of the Faith
  3. Guidelines by FigWig · · Score: 2

    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.

    --
    Scuttlemonkey is a troll
  4. Re:What sort of class? by JohnZed · · Score: 2

    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

  5. Subjects by severett · · Score: 2

    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.

  6. Well teaching UNIX comes to mind by sirket · · Score: 2

    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

  7. class ideas by kb9vcr · · Score: 2

    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)

  8. Re:What sort of class? by not+Bruce+Perens · · Score: 2

    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.

  9. What sort of class? by JohnZed · · Score: 3

    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