In our advanced classes our students begin to develop real world applications and games using full-fledged programming languages. We focus on Python, but if a student has a clear interest in another language then we accommodate that as well. For our advanced classes we focus on guiding our students only as much as is necessary. We will teach them how to use the tools that are available to them, the fundamentals of their language, and the resources available to them. We encourage supervised independent exploration since once they are in the field they will no longer have a guide. We watch to make sure they don’t get stuck on any problem too long and to check their work to keep an eye out for errors or bad programming habits.
As they advance through the program they will learn to use modal text editors, integrated development environments, version control software, and other essential developer tools.