Programming Machine (PM) is a physical system designed to help people learn creative programming languages, such as Processing. It explores complementary ways to explain and exercise some of the core, and highly abstract, notions of visual programming, such as variables, loops, functions and arrays. Rather than entering lines of code into an editor, with PM, students manipulate physical objects on a gridded surface connected to a computer. As they attach new pieces they can control the state of the object and the results of their actions are immediately displayed on the screen. PM is inspired by Constructionist Theory, which states that learning happens most effectively when people are actively making tangible objects in the real world.