A photograph of user interface wireframes.
What design is and how to do it.

Design Methods

by Amy J. Ko

2nd edition

After teaching design for many years, I longed for a simple, concise, and practical introduction to design for technically-minded people. In response, I’ve distilled my lectures from the past decade into these brief chapters. They don’t represent everything we know about design, and they certainly only represent my own  stance on design, but my students have found them be accessible introduction to big ideas in design. I hope you enjoy! If you see something missing or wrong, submit an issue.

A photograph of a design studioChapter 1

What designers do

function($$renderer5) { $$renderer5.push(`<span class="etc svelte-g71yi0">`); Muted($$renderer5, { children: ($$renderer6) => { if (editable) { $$renderer6.push("<!--[0-->"); Toggle($$renderer6, { on: chapter.isForthcoming(), save: (on) => setChapter(edition, chapter, chapter.asForthcoming(on)), children: ($$renderer7) => { $$renderer7.push(`<!---->${escape_html(etc)}`); } }); } else { $$renderer6.push(`<!--[-1-->${escape_html(etc)}`); } $$renderer6.push(`<!--]-->`); } }); $$renderer5.push(`<!----></span>`); }
A squiggle line converting toward a straight lineChapter 2

How to design

function($$renderer5) { $$renderer5.push(`<span class="etc svelte-g71yi0">`); Muted($$renderer5, { children: ($$renderer6) => { if (editable) { $$renderer6.push("<!--[0-->"); Toggle($$renderer6, { on: chapter.isForthcoming(), save: (on) => setChapter(edition, chapter, chapter.asForthcoming(on)), children: ($$renderer7) => { $$renderer7.push(`<!---->${escape_html(etc)}`); } }); } else { $$renderer6.push(`<!--[-1-->${escape_html(etc)}`); } $$renderer6.push(`<!--]-->`); } }); $$renderer5.push(`<!----></span>`); }
A complex tangled rope with people trying to disentangle it.Chapter 3

How to understand problems

function($$renderer5) { $$renderer5.push(`<span class="etc svelte-g71yi0">`); Muted($$renderer5, { children: ($$renderer6) => { if (editable) { $$renderer6.push("<!--[0-->"); Toggle($$renderer6, { on: chapter.isForthcoming(), save: (on) => setChapter(edition, chapter, chapter.asForthcoming(on)), children: ($$renderer7) => { $$renderer7.push(`<!---->${escape_html(etc)}`); } }); } else { $$renderer6.push(`<!--[-1-->${escape_html(etc)}`); } $$renderer6.push(`<!--]-->`); } }); $$renderer5.push(`<!----></span>`); }
A screen capture of a pronunciation of the the word ‘problem’, from the Oxford English DictionaryChapter 4

How to define problems

function($$renderer5) { $$renderer5.push(`<span class="etc svelte-g71yi0">`); Muted($$renderer5, { children: ($$renderer6) => { if (editable) { $$renderer6.push("<!--[0-->"); Toggle($$renderer6, { on: chapter.isForthcoming(), save: (on) => setChapter(edition, chapter, chapter.asForthcoming(on)), children: ($$renderer7) => { $$renderer7.push(`<!---->${escape_html(etc)}`); } }); } else { $$renderer6.push(`<!--[-1-->${escape_html(etc)}`); } $$renderer6.push(`<!--]-->`); } }); $$renderer5.push(`<!----></span>`); }
A vector graphic of a lightbulbChapter 5

How to be creative

function($$renderer5) { $$renderer5.push(`<span class="etc svelte-g71yi0">`); Muted($$renderer5, { children: ($$renderer6) => { if (editable) { $$renderer6.push("<!--[0-->"); Toggle($$renderer6, { on: chapter.isForthcoming(), save: (on) => setChapter(edition, chapter, chapter.asForthcoming(on)), children: ($$renderer7) => { $$renderer7.push(`<!---->${escape_html(etc)}`); } }); } else { $$renderer6.push(`<!--[-1-->${escape_html(etc)}`); } $$renderer6.push(`<!--]-->`); } }); $$renderer5.push(`<!----></span>`); }
A photograph of a sketch of a mobile application.Chapter 6

How to prototype

function($$renderer5) { $$renderer5.push(`<span class="etc svelte-g71yi0">`); Muted($$renderer5, { children: ($$renderer6) => { if (editable) { $$renderer6.push("<!--[0-->"); Toggle($$renderer6, { on: chapter.isForthcoming(), save: (on) => setChapter(edition, chapter, chapter.asForthcoming(on)), children: ($$renderer7) => { $$renderer7.push(`<!---->${escape_html(etc)}`); } }); } else { $$renderer6.push(`<!--[-1-->${escape_html(etc)}`); } $$renderer6.push(`<!--]-->`); } }); $$renderer5.push(`<!----></span>`); }
A screenshot of the iOS and Android home screens.Chapter 7

How to design interfaces

function($$renderer5) { $$renderer5.push(`<span class="etc svelte-g71yi0">`); Muted($$renderer5, { children: ($$renderer6) => { if (editable) { $$renderer6.push("<!--[0-->"); Toggle($$renderer6, { on: chapter.isForthcoming(), save: (on) => setChapter(edition, chapter, chapter.asForthcoming(on)), children: ($$renderer7) => { $$renderer7.push(`<!---->${escape_html(etc)}`); } }); } else { $$renderer6.push(`<!--[-1-->${escape_html(etc)}`); } $$renderer6.push(`<!--]-->`); } }); $$renderer5.push(`<!----></span>`); }
A photograph of a design critique, with designs on a wall and two peopel looking at them.Chapter 8

How to be critical

function($$renderer5) { $$renderer5.push(`<span class="etc svelte-g71yi0">`); Muted($$renderer5, { children: ($$renderer6) => { if (editable) { $$renderer6.push("<!--[0-->"); Toggle($$renderer6, { on: chapter.isForthcoming(), save: (on) => setChapter(edition, chapter, chapter.asForthcoming(on)), children: ($$renderer7) => { $$renderer7.push(`<!---->${escape_html(etc)}`); } }); } else { $$renderer6.push(`<!--[-1-->${escape_html(etc)}`); } $$renderer6.push(`<!--]-->`); } }); $$renderer5.push(`<!----></span>`); }
A photograph of one person observing another person use a software applicationChapter 9

How to evaluate empirically

function($$renderer5) { $$renderer5.push(`<span class="etc svelte-g71yi0">`); Muted($$renderer5, { children: ($$renderer6) => { if (editable) { $$renderer6.push("<!--[0-->"); Toggle($$renderer6, { on: chapter.isForthcoming(), save: (on) => setChapter(edition, chapter, chapter.asForthcoming(on)), children: ($$renderer7) => { $$renderer7.push(`<!---->${escape_html(etc)}`); } }); } else { $$renderer6.push(`<!--[-1-->${escape_html(etc)}`); } $$renderer6.push(`<!--]-->`); } }); $$renderer5.push(`<!----></span>`); }
Clip art of a clipboard with a check list.Chapter 10

How to evaluate analytically

function($$renderer5) { $$renderer5.push(`<span class="etc svelte-g71yi0">`); Muted($$renderer5, { children: ($$renderer6) => { if (editable) { $$renderer6.push("<!--[0-->"); Toggle($$renderer6, { on: chapter.isForthcoming(), save: (on) => setChapter(edition, chapter, chapter.asForthcoming(on)), children: ($$renderer7) => { $$renderer7.push(`<!---->${escape_html(etc)}`); } }); } else { $$renderer6.push(`<!--[-1-->${escape_html(etc)}`); } $$renderer6.push(`<!--]-->`); } }); $$renderer5.push(`<!----></span>`); }

References

Everything cited

Index

Common words and where they are

Search

Find where words occur

Media

Images and video in the book

Thank you to many students and faculty who’ve read the book and offerered constructive critique! The book is always improving thanks to your wonderful feedback.

Creative Commons Attribution-NoDeriviatives 4.0

Want to print this book or generate a PDF? See all chapters on a single page and then print or export. Long books can take some time to render.

Reading on an e-reader? Build an EPUB of this book. Images are shrunk to fit the size you choose, so pick the one closest to your device. Long books with many images can take a minute.

Amy J. Ko (2026). Design Methods. …, retrieved 9/7/2026.