After school programming class. What to teach?

I may be teaching some high school & middle school kids programming as part of an after school program. Any advice on a language, especially if there are resources available (ie, less work for me!)

Their experience would be zero, and mine is limited to BASH scripts used to do menial work on my Linux servers.

Thanks!
-Shawn

about software programming info

prakash nathani's picture

i have completed 12th in science.
i want more info about software programming institutions.

Functional maybe?

hwiz's picture

You could also try something different, and try a language based on the functional paradigm, like SML or Haskell. They are very different from the imperative languages that are used most in the industry (like Java and C#), although functional languages are getting more popular (F#, Scala).

I think they have some benefits as first languages. First of all, not very many people have tried programming in a functional style, which means that students who may have some experience with programming won't get bored.
Second, when you have learned the syntax (which is actually pretty minimal and well-defined), this way of programming is pretty intuitive I think.

Functional languages may seem very weird at first, because some of the well-known imperative elements doesn't exist. You don't have any kind of loops for instance, all iterations are made using recursion. You don't have state either, so you can't change the contents of a value when it's been set. But when you've learned programming the style, it suddenly makes a lot of sense!

-Ulrik

Ruby

Carlie Fairchild's picture

There's a good Ruby programming class online, http://tinyurl.com/ypp6xx. The class begins with a 'Hello World' example so safe to say it's probably the speed you're looking for.

Check out Linux Journal's issue on Ruby too, http://www.linuxjournal.com/issue/147.

Oh, and I can't recommend this book more, Learn to Program by Chris Pine.

Carlie Fairchild is the publisher of Linux Journal.

What to teach? Python?

kenf's picture

Python seems to be the teaching language of the moment.

If you want to go this route you might check out:

How to Think Like a Computer Scientist
Learning with Python at:

http://www.ibiblio.org/obp/thinkCSpy/

Ken

Webinar
One Click, Universal Protection: Implementing Centralized Security Policies on Linux Systems

As Linux continues to play an ever increasing role in corporate data centers and institutions, ensuring the integrity and protection of these systems must be a priority. With 60% of the world's websites and an increasing share of organization's mission-critical workloads running on Linux, failing to stop malware and other advanced threats on Linux can increasingly impact an organization's reputation and bottom line.

Learn More

Sponsored by Bit9

Webinar
Linux Backup and Recovery Webinar

Most companies incorporate backup procedures for critical data, which can be restored quickly if a loss occurs. However, fewer companies are prepared for catastrophic system failures, in which they lose all data, the entire operating system, applications, settings, patches and more, reducing their system(s) to “bare metal.” After all, before data can be restored to a system, there must be a system to restore it to.

In this one hour webinar, learn how to enhance your existing backup strategies for better disaster recovery preparedness using Storix System Backup Administrator (SBAdmin), a highly flexible bare-metal recovery solution for UNIX and Linux systems.

Learn More

Sponsored by Storix