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

Webcast
How to Build an Optimal Hadoop Cluster to Store and Maintain Unlimited Amounts of Data Using Microservers

Realizing the promise of Apache® Hadoop® requires the effective deployment of compute, memory, storage and networking to achieve optimal results. With its flexibility and multitude of options, it is easy to over or under provision the server infrastructure, resulting in poor performance and high TCO. Join us for an in depth, technical discussion with industry experts from leading Hadoop and server companies who will provide insights into the key considerations for designing and deploying an optimal Hadoop cluster.

Learn More

Sponsored by AMD

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