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

This studio course is about making 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.

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 connect to an audience. Other questions include: what is the relationship of life online to embodied experience? What is the interactive and performative potential of websites? How do you use the internet mindfully?

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.

Contact Info

Rosa McElheny
Office hours on Sundays from 5-7pm, or by appointment. Sign up here.

Rok Hudobivnik, TA

What to expect

This class meets 13 times. 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.
  6. Professional development: Learn what it's like to be an interactive designer/programmer, and how to use the skills from this class in 'real-world' applications.

See an annotated list of learning outcomes, with notes from our first-day survey here.


Class size is limited to 14 students. As this class is required for eight 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.


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.

Check out the projects page for more specifics ;)


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, and to the final presentation.

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 email for communication.

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.”


More than two no-shows will result in a failing grade. A no-show means you don't attend class, and fail to either tell me ahead of time, or propose a way to make up the session. Given notice, I can accommodate remote or hybrid classes. I'm also happy to meet outside of class, and understand that the pandemic requires extra flexibility. I just ask that you communicate with me about your needs.


Thank you Laurel Schwulst, Dan Michealson, Mindy Seu, Simone Cutrí, Hilary duPont, Tuan Pham, Mengyi Qian, Orysia Zabeida, and Rok Hudobivnik (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.