Joy Ko

Time and Place

  • Weekly Class: Monday, 09:40-12:40, BEB Rm 120
  • Office Hours: by appointment

Course Description

This advanced seminar offers students the opportunity to focus on computational topics pertaining to architecture. Computational techniques and computational ideas are explored through making, writing, reading, and discussion. Some of the work in this course will take place in the space of the digital model, but coding, physical computation, and human computation may also enter into play. Students in this course will, under the mentorship of faculty, develop a level of expertise and knowledge that goes beyond what is usually associated with the requisite skills for contemporary architectural practice. Conversely, it is expected that computation may provoke a challenge to even the most basic conceptions of design and architecture.

The specific topic for this iteration will be on Pattern Logic: Algorithm in Architecture and Design . This seminar begins by comparing a variety of theoretical definitions of the pattern in the arts, design, and sciences – including those of Frank Lloyd Wright, Norbert Weiner, Herbert Simon, and Christopher Alexander – and traces their evolution to contemporary practices of algorithmic design in architecture. This study forms the basis of an exploration of a variety of methods of algorithmic design techniques; those processes which seek to generate space and form from the rule-based logic inherent in architectural programs, typologies, building code, and language itself. While inspiration may be drawn from applications as diverse as mathematics, crystallography, and textile design, focus will remain on the development of algorithms and computation that suggest meaningful and viable architectural forms.

Course Work

Your work in this course will be guided by a series of readings and projects organized within two units. Anticipated dates are given in the course schedule; real-time adjustments will be announced in class and posted on the website. Class time will be actively distributed between lecture, discussion, workshops, presentation and critique. It is your responsibility to take notes during class, and is expected that you will utilize feedback given during critique to improve the technical and conceptual aspects of your work. A significant portion of the material for this course will be presented only in class, so your attendance is required unless you have permission from me.

The course is structured into two units on Geometry and Language . For each unit, there are two sets of assigned readings and two projects.

  • Students are required to do all readings, which will serve as a conceptual backdrop for the design and development of the projects.
  • In groups, students are responsible for conducting the class discussion for one set of readings. This involves developing a list of questions to guide the discussion and a presentation that highlights the issues within the texts, supports positions with precedent work and imagery, and addresses the relevance of these concepts to architectural design.
  • In each unit, the first projects (Projects 1, 3) are assigned exercises that allow students to familiarize with the concepts, tools and techniques introduced in class; second projects (Project 2,4) are self-directed and call upon students to conceive of and implement a project related to the topics raised in class and from the readings.


Week 1 (09.14)

Introductions: course and tools
Unit 1 _Geometry overview
Code - Elements of a Script
Assignment of groups for readings
Reading 1 assigned, due 09.21

Week 2 (09.21)

Unit 1_Geometry - Elemental Objects
Code - Collections and Control Flow, Functions
Project 1 assigned, due 10.05; Reading 2 assigned, due 10.05

Week 3 (09.28)

No class, instructor away

Week 4 (10.05)

Unit 1 _Geometry - Collection Types
Project 1 pinup and group critique
Reading 2 presentation and discussion

Week 5 (10.16)

Unit 1 _Geometry - Meshes
Code - Classes
Project 2 proposals to be reviewed on 10.19, assignment due 11.02

Week 6 (10.19)

Unit 1 _Geometry - Curves and Surfaces
Project 2 development and desk crits
Reading 3 assigned, due 11.02

Week 7 (10.26)

Project 2 development and desk crits

Week 8 (11.02)

Project 2 Review
Unit 2 _Language overview
Reading 3 presentation and discussion - deferred to 11.09

Week 9 (11.09)

Unit 2 _Language - L-Systems, Cellular Automata, Reaction Diffusion
Reading 3 presentation and discussion
Project 3 assigned, due 11.18

Week 10 (rescheduled to 11.18 at 4:30)

Unit 2 _Language - Walkers, Birds (Flocking)
Project 3 presentations
Guest lecture from Carl Lostritto on "Computing Drawing/Storms"
Reading 4 assigned, due 11.23
Project 4 proposals to be reviewed on 11.23, assignment due 12.07

Week 11 (11.23)

Unit 2 _Language - Sorting, Packing
Reading 4 presentation and discussion
Project 4 development and desk crits

Week 12 (11.30)

Unit 2 _Language - Data/Ethnomining
Project 4 development and desk crits

Week 13 (12.07)

Final Review (bring in all work from the entire term)


You will be evaluated on active class participation, a presentation on the reading, and the successful implementation of the projects. Grading will be broken down as follows:

  • Class Participation 25%
  • Reading Presentation 25%
  • Projects 50%


Discussions are a critical part of this seminar and provide the contextual anchor for the creative projects in this course. There are four sets of readings throughout this course.

In groups , students are responsible for conducting the class discussion for one set of readings. This involves developing a list of questions to guide the discussion and a presentation that highlights the issues within the texts, supports positions with precedent work and imagery, and addresses the relevance of these concepts to architectural design.

As individuals , please plan to do all readings. To help focus your reading and what you bring to the discussion, you are asked to prepare a brief (half-page) response about each text; this is not just a synopsis of what you have read, but a distinct reaction to the premise of the text. These will be turned into the discussion leader at the beginning of class and can be used as a jump start (or jumping off point) for the class discussion. These will then be turned into me and count towards your class participation.

Lewis Day, Pattern Design , 1903, read p. 1-53
Konrad Wachsmann, The Turning Point of Building , 1961, p. 48-74
Benoit Mandelbrot, The Fractal Geometry of Nature , 1982, read p. 1 - 24
George Stiny, “New Ways to Look at Things” , Environment and Planning B: Planning and Design Anniversary Issue, 1998, p. 68-75
Cecil Balmond, Informal , 2007 excerpts (57 case study: Kunsthal, 109 definition of Informal, xi definition of pattern)
Interview with CB
Norbert Wiener, Human Use of Human Beings , 1950, read p. 48-73 Chapter III and p. 74-94 Chapter IV
Christopher Alexander, Pattern Language , 1977, read p. xviii-xxxvii Summary of the Language and p. 609-647 Chapter 127
Manuel Castells, "The Space of Flows", in The Informational City , 1989, p. 424-440
Dan Hall, “ The Street as Platform ”, 2008
Ken Anderson, "Numbers Have Qualities Too: Experiences with Ethnomining" , Ethnographic Praxis in Industry Conference Proceedings, 2009, 123-140

Computational Tools

Rhino - 3D Modeling Environment. Students are expected to have a good working knowledge in this environment before entering into this class.

Grasshopper - Visual Programming Environment Plugin for Rhino. This environment effectively transforms Rhino into a reasonably powerful parametric modeler.  This will only be used for in-class demos and will neither be taught nor supported; however, this is a well-documented environment and could be a good step up to scripting for some students.

Python – General Purpose Scripting Language. This language is a good entrée into code, since it has high-level constructs; moreover, it is now possible to script in multiple CAD environments using Python. (Python) Library - Geometric Library for Python Scripting. This is a library (developed with Kyle Steinfeld) with functionality specific to computational design in architecture. All example scripts used in class will be provided as downloads each week.