The natural world demonstrates that the evolutionary process provides an unparalleled mechanism for the design of complex systems. This course will investigate how evolutionary design tools can be incorporated into software without ceding the artist’s creative role to pure probability.
This course will look at genetic algorithms, genetic programming and self-organizing systems from two interrelated perspectives: software architecture and user-interface design. On the programming side, we will study key design patterns, data structures and serialization techniques used in implementing these systems. For the design component, the class will function as a collaborative project development studio, working to innovate novel interfaces that harness the power and temper the unpredictability of emergent systems.
This course is intended for experienced programmers. Examples and collaborative work will be written in C++ with Cinder as a supporting application framework.
Offered by Patrick Hebron at the Interactive Telecommunications Program (ITP), New York University (NYU), Fall 2013