Describir: Understanding and using programmable controllers