An introduction to the important issues that involve design within the fields of computing and architecture. Design has become increasingly important to computer scientists and at the same time computation has become important to designers. This course serves as a survey of these overlapping interests.