Programming Design
In what unconscious ways do your design tools influence your work? Would your work look different if you made all of the tools used to create it? What will design look like when machine learning automates many design tasks? How will you adapt when your software changes? What does design look like when you are building systems to create outcomes? How do you design for different contexts at the same time from the same content? What would computer-aided design iteration look like? These are all questions that students may confront in their careers as designers. This course will explore these questions through in-class demos, solo and group projects, readings, and talks from practitioners in the field. The class will teach students the Python programming language, which will be used in the free DrawBot application for MacOS and with the PageBot code library to create design applications and tools. Students will learn how to think systematically about design, how to work in teams, rapid iteration using the computer, sketching, the design of software applications, how to translate digital experiences to analog (and vice versa), and how to learn from failure. The course assumes no prior experience with programming and no knowledge of Python. Open to junior and senior students, with preference given to communication design majors and minors. This course is experimental and team-driven. Students must be fundamentally curious and willing community participants who are capable of self-learning and tolerant of failure.
Prerequisites & course information
Credit 3 units. SamFox: FACOMM, FADESMIN Typical periods offered: Spring
Sources
- Course catalogue โ2026โ2027