Next workshop with Africa/Europe-friendly schedule: starting the weekend of October 18+19 (tentatively) and continuing the following weekend.
The workshop is the same one listed at our main page, but here we teach it at a schedule that is friendly for people in African and European time zones.
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.
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.
The Africa/Europe timezone format will be somewhat different from the American timezone format: the course will be protracted over the course of two or three weekends, and run for fewer hours every day.
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.
Since the time zone difference makes for less interaction with the instructor ahead of time (although we will still be working with each student individually before the course), the format here will involve a more gentle introduction. We will start with a tour of the Linux system and we will become familiar with where files are and with basic editing of files before we start programming.
We will also spread the course over a longer period.
There is no cost: the course is free and taught by volunteers. We thank many donors whose grants have helped us purchase materials,.
a desire to work hard on learning to program
an old computer or laptop that you or a friend or grandparent or neighbor has sitting around unused
if you cannot find an old computer we can help you with a loaner - write us!
we will do a lot of typing - see if you can practice fast typing
students need to be able to handle their own email correspondence, and to be aware to copy their parents on all email
There are many carefully designed courses that teach "programming for kids". This is not one of those: this is a "serious programming" 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:
the Linux operating system is the basis for almost all the computers that "run the world": from the servers at Amazon and Google to the supercomputers that power science, the operating system is almost always the Linux. it is also used for almost all serious research work.
the Linux operating system is written by programmers for programmers: it offers a choice of several powerful programming environments and puts few barriers in the way of the programmer.
the system is entirely built with free/open-source software.
the Linux system works quite well on very old hardware with less memory
Our motivation behind teaching python is:
it is a pleasant and easy language to learn
it is also a language used for many industrial-strength applications
it can be used to write a wide variety of interesting programs
it is used in all areas of research, from the arts and humanities to the social sciences to the natural sciences
Specifically, the path we will take will involve these steps:
learn to install and use the Linux operating system on old hardware
learn to dissect a computer and understand the components inside
learn to use the command line shell
learn to use a programming editor
learn to write simple programs in python
write a more serious program in python
add intelligent algorithms to the program
The course is a 10 to 12-hour course, though sometimes we schedule for a longer stretch, and other times we finish quite early. The ten hours will be spread over two or three weekends.
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.
The next workshop will take place virtually using the Jitsi videoconferencing platform (*). It is a 10 to 12-hour course, and students must commit to taking the full course.
Upcoming: the Africa/Europe timezone course (date specified at top of this page), grades 6 and up:
Weekend 1
Saturday (9am-12:00noon)
Sunday (9am-12noon)
Weekend 2
Saturday (9am-12:00noon)
Sunday (9am-12noon)
(note: all times on this page are in GMT time zone; make sure you adjust for your time zone)
Send email to mark@galassi.org to sign up. You may also phone +1-505-629-0759 (voice only). "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.