"'It's going to be raining tomorrow' is software"
–Les Levine

In this studio course, students create projects in the web browser. The class will cover foundational, front-end languages HTML, CSS, and JavaScript and introduce principles of web design including navigation, pacing, feedback, accessibility, and adapting to variable screen sizes and devices.

In readings and discussions, we will talk about where the internet comes from, where it is today, and where it’s going—emphasizing its continued use by artists, designers, programmers, activists, and independent publishers of many persuasions.

Beyond technical skills, the course will look at the application of graphic design principles to the web, and support the development of original, surprising projects. Throughout the semester, we will think about what it means to make work for the public realm, and consider the unique abilities of the browser to contextualize and present content to an audience. The browser is first and foremost a medium for creative expression.

What to expect

This class meets 13 times on zoom. Each class we will spend time doing one or more of the following:

  1. Learning: via demos, lectures or other presentations by instructor, visitors, and students.
  2. Working: most classes will include an in-class exercise to introduce a new technical principle and/or time for debugging.
  3. Sharing: instructor, visitors and students will all share their work and references.
  4. Discussion: most classes will include some type of reading discussion.
  5. Critique: feedback on projects from instructor, visitors, and fellow students.
Learning outcomes

This class is designed to teach the following:

  1. Technical: Master the basics of frontend web development. Gain fluency in HTML, CSS, and JavaScript.

  2. Technical: Apprehend a general approach to programming. By the end of the course, you should be able to determine the best way to structure and begin a project; know how to write efficient, eloquent code; and develop strategies for troubleshooting.

  3. Literacy: Be critical and inventive when designing for the web.

  4. Creative: Realize projects that make compelling use of content, visual design, and technical opportunities.

  5. Creative: Develop personal design strategies and interests that can be applied to a studio practice more broadly.


Class size is limited to 10 students. As this class is required for five graduate students, 5 spots are available for Art majors, Computing in the Arts majors, and junior/seniors in that order. Prerequisite is ART 132, Introduction to Graphic Design. No prior programming experience required.

One thing to consider: this class is technical and introductory. It may best serve students who wish to continue to apply these skills to personal projects in the future. It's also an art course-- the emphasis is on creative use of programming and web design in the production of what Carolyn Sinders calls Useful Art.

Interested students should fill out a class survey here.


The class will combine a series of short, in-class exercises with three longer-term conceptual projects. All work--exercises, projects, and any process materials such as written proposals, design sketches, or drafts--will be collected on each students' class website.

Project 1: Email Newsletter*
Design and publish an e-mail newsletter. Choose a subject of inquiry and develop content for at least five emails. Using HTML and CSS, create a design system and code your messages. Archive all emails on a website.

Project 2: Browser Extension*
Conceive, design and code a browser extension that meaningfully alters the experience of browsing the web. Design and publish a webpage to introduce and host your extension.

Project 3: Image collection*
Collect at least 50 images and design a website to display them. Website must be WCAG compliant and mobile-responsive.

Each week we'll read and discuss a text. The readings cover subjects including websites, interface, time, space, (and the experience of each online), and life on and within the Internet. Some apply more directly to the projects than others–together, they're meant as an undercurrent, a suggestion of context, and a place to begin thinking about how to position your work.

*assignments are subject to change before first class meeting :)

  • 20% Project 1
  • 20% Project 2
  • 20% Project 3
  • 20% Class website
  • 20% Participation and Diligence

Projects 1, 2, and 3 will be graded on their quality. Projects should take a stance (be poetic, memorable, critical, and clear) and be functional (achieve their goals and not break). They should be thoughtfully designed. This class prioritizes the invention of useful techniques and approaches over product design. Taking risks is encouraged as an essential part of exploration and ongoing thinking. Craft (in design, code, and presentation) is also important.

The class website is your class homepage. It should include all in-class exercises, reading responses, sketches, as well as projects.

Participation and diligence refers to your contributions in class.

Technology & Materials

All projects will be created on a computer using a web browser and text editor. Each student will have a class site hosted by github pages. In addition, we'll use this website and Slack channel for communication. Classes will be held on zoom.

This class has a materials fee of $150. This goes toward paying guest ciritics. There will be no material cost associated with the class, unless students wish to purchase hosting and a domain name. More information about course fees is here, or you can certainly come to me with any concerns.

Academic Integrity

Throughout the semester, we will use pre-existing language, images, and software as raw material while creating entirely new works. While making websites, we will learn which technologies could be appropriated and how to properly credit their inclusion.
From Academic Integrity at MIT: "Writing Code":

“Writing code is similar to academic writing in that when you use or adapt code developed by someone else as part of your project, you must cite your source. However, instead of quoting or paraphrasing a source, you include an inline comment in the code. These comments not only ensure you are giving proper credit, but help with code understanding and debugging.”

“You should not simply re-use code as the solution to an assignment. Like academic writing, your code can incorporate the ideas of others but should reflect your original approach to the problem.”


Attendance is essential. Three or more absences will result in a failing grade. Three or more late arrivals (more than 10 minutes late) equals an absence. If you absolutely must miss class, email me in advance.


Thank you Laurel Schwulst, Dan Michealson, Mindy Seu, Simone Cutrí, Hilary duPont, Tuan Pham, and Mengyi Qian (our TA!) for your help planning the course.

The course title, Software for People, is borrowed from composer and educator Pauline Oliveros, whose work inspires the class’s open-ended, user-oriented and attentive approach to designing for the web.