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

White Paper
Linux Management with Red Hat Satellite: Measuring Business Impact and ROI

Linux has become a key foundation for supporting today's rapidly growing IT environments. Linux is being used to deploy business applications and databases, trading on its reputation as a low-cost operating environment. For many IT organizations, Linux is a mainstay for deploying Web servers and has evolved from handling basic file, print, and utility workloads to running mission-critical applications and databases, physically, virtually, and in the cloud. As Linux grows in importance in terms of value to the business, managing Linux environments to high standards of service quality — availability, security, and performance — becomes an essential requirement for business success.

Learn More

Sponsored by Red Hat

White Paper
Private PaaS for the Agile Enterprise

If you already use virtualized infrastructure, you are well on your way to leveraging the power of the cloud. Virtualization offers the promise of limitless resources, but how do you manage that scalability when your DevOps team doesn’t scale? In today’s hypercompetitive markets, fast results can make a difference between leading the pack vs. obsolescence. Organizations need more benefits from cloud computing than just raw resources. They need agility, flexibility, convenience, ROI, and control.

Stackato private Platform-as-a-Service technology from ActiveState extends your private cloud infrastructure by creating a private PaaS to provide on-demand availability, flexibility, control, and ultimately, faster time-to-market for your enterprise.

Learn More

Sponsored by ActiveState