Serious Programming Courses

2024: Next course, grades 6 and up, tentatively set for the weekend of May 18+19.  Students from all over the world encouraged to join!

(There will be further workshops - typically every month or so.  And please write if you are interested in an Africa/Europe timezone friendly schedule.)

Serious Computer Programming for Youth

Programming course overview

This is a free hands-on course which teaches programming with an aim toward advanced work and applications to academic areas (science, social science, humanities, arts, engineering).  For example, in the course we use professional programming editors, and run Python natively on a computer running Linux.  We also learn to install an operating system, and dissect computers to get a broad view of how they work.  The courses are taught by Dr. Mark Galassi, an astrophysicist and computer scientist at Los Alamos National Laboratory.

The course will start with an unusual but important feature: each student should obtain an old computer or laptop which is not used much anymore, and we will start by installing a Linux distribution. You need to be willing to lose all data on this computer, as we will repartition it and install a new operating system. If you cannot find an old computer we will have some loaners, though we will start by pressing you to look harder. It is important that the students feel "ownership" of the computer, from the bare hardware all the way up through the operating system that they install. It is pretty easy to find old laptops: odds are very good that a neighbor or relative has a 5-year-old laptop they have not used in quite a while. The computer should have 8 gigabytes of RAM to be fully usable, though for the course you might get by with 4 gigabytes or slightly less.

Starting with the COVID lockdown in 2020 the workshops became remote and world-wide.  We meet in videoconference, but with an approach that is still very personal and interactive.  Your instructor will work with you remotely ahead of time to prepare the computer.)

Once each student has a computer running Linux we will have a hands-on introduction to programming in Python, reaching a remarkable level in a weekend.

Vis-a-vis age: computing, like chess, can often be done well by children, so younger students are invited to join if they are enthusiastic and willing to work hard. But a key issue is fast typing: if a kid cannot type quickly then they will not be able to keep up.  So we ordinarily specify that the course is for kids in 6th grade and above, but a motivated fast typist could do well even if they were younger.

No cost

There is no cost: the course is free and taught by volunteers. We thank many donors whose grants have helped us purchase materials, and we thank the Santa Fe Public Library for offering its space and resources.



There are many carefully designed courses that teach "programming for kids". This is not one of those: this is a "serious programming for kids" course. Our goal is that everyone should learn to use and then to program computers like a true researcher.

This is a course that might take you out of your computing comfort zone: if you are accustomed to use a computer by "clicking at things that are in sight" then you will learn a new approach which is much more powerful and with which repetitive tasks can be automated.

The motivation behind learning the Linux operating system is that:

Our motivation behind teaching python is:

Our path

Specifically, the path we will take will involve these steps:

Course format

The course is a 10-hour course. These days it is always taught as a weekend intensive course.

I have written a detailed Teacher's Manual which you can find in my documents page which gives a detailed outline of what will be studied in each segment of the course.

How to start

The next workshop will take place virtually using the Jitsi videoconferencing platform (*). It is a 10-hour course, and students must commit to taking the full course.

Upcoming: weekend (date specified up top), grades 6 and up:

Saturday (10am-12:30pm and 1:15pm-5:30pm), continuing Sunday (1pm-4:45pm)

(note: all times on this page are in US/Mountain time zone; make sure you adjust for your time zone)

Send email to to sign up.  You may also phone +1-505-629-0759. "Space" is limited.

Note to students and parents: we do not accept students who are being pressured by parents to take the workshop.  Students should sign up from a non-school email address (because school addresses are often blocked, and they are not enduring).  Students must Cc: their parents on the email and we will continue to Cc: the parents in our interaction.

footnote (*): Jitsi is a free/open-source videoconferencing system which runs inside your browser or with mobile apps.  It has profound by-design respect for privacy, and does not require you to register or install toxic software on your computer.