Learning Programs and Supports