I'm Adam M. Smith, a postdoctoral researcher in computer science. "Artificial intelligence for design," is the one-liner I often use to describe the work I started with Michael Mateas at UC Santa Cruz and continue with Zoran Popović at the University of Washington. My dissertation, Mechanizing Exploratory Game Design, built a design automation practice in the interdiscplinary space between game design, design studies, computational creativity, and symbolic AI. I typically employ answer set programming (and related combinatorial search/optimization tools such as theorem provers and model checkers) in the service of exploratorily posing and automatically solving high-complexity analysis and synthesis problems arising in creative design domains. Lately, I've been focusing on deep design automation for educational games.
In addition to the serious stuff above, I like to explore generative art and music, recreational programming all the way down to the hardware level, and infinitesimal-thrust spacecraft design and orbital dynamics.
Ultimate goal: Dramatically increase the creative resources available to our civilization by using machines to amplify the creativity of those facing complex design problems (particularly those involving the self-improvement of civilization, e.g. education).
I am deeply passionate about teaching technical topics, particularly where I can steer them to overlap with creative and aesthetic endeavors. I regularly volunteer to give guest lectures, design new projects, and consult on the curriculum for new classes. I provide lifetime support to my students on selected topics and delight in hearing the challenges they encounter in industry and grad school elsewhere. Where possible, I work to legitimize self-teaching outside of established institutions.
Teaching assistantships: introduction to computer graphics; scientific visualization and computer animation; game engine architecture; fundamentals of game design; game design studio; advanced analysis of algorithms; computer literacy.
Guest lecture topics: game programming with python; the spectrum of game engine architectures; designing a simple game framework; image compositing; non-photorealistic rendering; programmer-oriented tools for creativity in graphics; livecoding for music, sculpture, and poetry; overlapping notions of time in programming languages and software engineering.
Extended lecture series: scientific computation with Android tablets (for the AHPCRC Summer Institute
(Ideally not-so) Controversial curriculum I advocate: Bayesian inferential calculus; geometric algebra; computational thinking and procedural literacy; massively multi-language introductions to programming.
Awards: 2006 Outstanding Teaching Award (School of Engineering); 2007 Excellence in Teaching Award for Teaching Assistants (UCSC Grad Division)