Welcome to ARTGR4840/5840!

AI is reshaping how products are designed and built — and this course puts you at the center of that shift. In just 8 weeks, you'll move beyond static mockups to deploy real, functional web applications using tools like Figma Make and Cursor. No CS degree required — just curiosity, creativity, and a willingness to experiment. By the end, you'll walk away with a live URL and a new way of thinking about design. Let's build something.

About the Instructor

Video: about the course instructor

About the Course

The Goal of this Course

  • Design complete user experiences using user flows, wireframes, and design systems.
  • Understand the structure of modern web applications.
  • Use AI-assisted development tools to generate and debug functional web applications.
  • Apply prompt engineering techniques.
  • Deploy live, working web applications.

How is this course organized

This course is structured into 8 weeks, each focusing on a specific aspect of AI-assisted UX design.

Course Project: From user flow to deployed product in 6 weeks.
Mini Projects: Practice one AI technique for vibe coding per week.
Course organization overview

Weekly Topics

  • Week 1. Basics of prompting for generative UI.
  • Week 2. Starting generation by user flow and site map.
  • Week 3. Understanding web application in the real world.
  • Week 4. Design system: control the styles of the UI.
  • Week 5. Bring real data to the design: API and data binding.
  • Week 6. Design documentation for AI.
  • Week 7. Comprehensive prompting for larger project.
  • Week 8. Put all together: Create and host portfolio for vibe coding projects.

How AI Is Changing UX Design

Discover how AI is transforming the way we approach user experience design.

Overview of LLM Concepts: Tokens, Context Window, Reasoning, Tool Call, and MCP

Understand the core concepts behind generative AI models.

Overview of Prompting

Learn about the art and science of crafting effective prompts for AI models.

Anatomy of a good prompt

  • Goal: What should be created?
  • Context: Who is it for? What problem does it solve?
  • Constraints: Platform, language, framework, visual style, accessibility, performance, scope.
  • Inputs: Existing code, screenshots, design specs, copy, brand guidelines.
  • Output format: Code only, explanation plus code, step-by-step plan, component structure, etc.
  • Success criteria: How will we know the result is good?

Token Bloat

When a prompt, conversation, file, or retrieved context contains too many unnecessary tokens, making it harder for the AI to focus on the information that actually matters. Too much irrelevant text competes with the important text.

Why it matters:

  • Irrelevant content reduces reasoning efficiency
  • Noisy prompts dilute important instructions
  • Excessive retrieval harms signal quality

Prompt design strategies

Effective prompt design is crucial for getting the desired results from AI models. Here are some strategies suggested by major platforms to consider:

Slide Show: Prompt Examples

Tools and AI Agents

Vibe coding tools fall into three broad categories — prompt-to-app builders, autonomous coding agents, and AI-native IDEs — each targeting a different level of technical involvement. Prompt-to-app builders like Figma Make charge by credit, making them easy to start but potentially expensive at scale, while token-based tools like Cursor and Claude Code tend to be far more cost-efficient for sustained work. Understanding which tool fits your task — and what it costs to run — is a core skill for working effectively in the AI-assisted design workflow.

Types of Vibe Coding Tools

Prompt-to-App Builders Autonomous Coding Agents AI-Native IDEs
Target users General consumers and business buyers. Broader user Developers and technical users.
Examples
Figma Base44
Codex Claude
Cursor Visual Studio Code
Pricing

Credit-Based   $$$$$

A virtual currency or "pool" of value.

Token-Based   $

Actual text units that AI read or write.

Token-Based   $

Actual text units that AI read or write.

Slide Show: Examples of Vibe Coding Tools

More than Just Code Generation

While prompt-to-app builders are primarily focused on generating functional prototypes from natural language prompts, autonomous coding agents and AI-native IDEs offer a broader range of capabilities. For example, I use Codex to organize papers and write documents in research. My wife use Cursor's IDE mode to write fictions and manage files with the assistent of its build-in AI.

Introduction to Cursor

Starting with Cursor

More Tutorials

If you are interested in learning more about Cursor, check out the following tutorials:

Using Cursor in Plan Mode (by @leerob):

Publish a Static Website to Netlify

Static vs. Dynamic Websites

Think of a static website like a printed flyer — it looks the same for everyone who picks it up. The files (HTML, CSS, images) are prepared in advance and sent directly to the browser exactly as they are. No server needs to think or calculate anything. This makes static sites fast, cheap to host, and very easy to deploy.

A dynamic website is more like a restaurant that cooks your meal to order. When you visit, the server runs code, queries a database, and builds the page specifically for you — your account, your preferences, your history. Social media feeds, e-commerce carts, and login pages are all dynamic.

Static Dynamic
Content Same for everyone Personalised per user
Speed Very fast Depends on server load
Hosting cost Free or very cheap Requires a server (higher cost)
Examples Portfolio, course pages, docs Instagram, Amazon, Gmail

Everything you build in this course is a static website — which is exactly why Netlify can host it for free with just a drag and drop.

Publish a Static Website to Netlify

Step 1

Publish to Netlify step 1

Step 2

Publish to Netlify step 2

Step 3

Publish to Netlify step 3

Step 4

Publish to Netlify step 4

Customize the Link Name

Step 1

Customize Netlify name step 1

Step 2

Customize Netlify name step 2

Step 3

Customize Netlify name step 3

Step 4

Customize Netlify name step 4

How to update a published project in Netlify

Update Netlify project

Mini Project 1: Explore Vibe Coding

Technology Setting Ups

Following resources would provide enough AI usage for this course with no cost. If you have subscriptions to other tools, such as Codex and Claude Code, you can also use them.

  • Setup Figma Professional account Free education plan available

    Education status verification is needed to get free access. Learn more

  • Setup Cursor Pro account (One year free for student) and install Cursor Free for students

    Student status verification is needed to get free access. Learn more

  • Setup Netlify account Free

    Start at netlify.com

  • (Optional) Signup GitHub Student Developer Pack and install Visual Studio Code and GitHub Desktop Free for students

    The package includes Copilot, Microsoft's AI agent, with generous tokens. Learn more

What to Do

  1. Complete course content for week 1 at ai.aaronyang.me/week/week-1.html
  2. Create a simple web application (either single-page or multi-page) using one of the following tools:
    • Cursor (either agent window or IDE window)
    • VS Code
    • Codex
    • Claude Code

    You cannot use Figma Make at this time. You have to preserve Figma AI credit for future projects.

  3. Publish your web application to Netlify.

What to Submit

Important

Submit the following in Canvas: https://canvas.iastate.edu/courses/127779/assignments/2814317

  1. Input following in the Text Entry field:

    A. Enter major prompts you used to initiate the project, update the page, or debug issues.(30% of total points)

    B. For each prompt you provide, specify how well it works. If it is not working well, explain the challenges you had.(20% of total points)

    C. Enter the link to your published site on Netlify or any other hosting.(50% of total points)

Design Topics

Here are some design topics you can explore for your mini project:

Caffeine "Jitter" Tracker

Users log the drinks they’ve had today (coffee, tea, soda). The app calculates the total milligrams of caffeine and updates a visual "jitter meter" that shakes based on the intake.

Color Contrast Validator

Users paste two hex codes. The app displays them side-by-side as a button and background, calculating if the combination passes web accessibility standards, giving a "Pass" or "Fail" badge.

Dream Desk Setup Visualizer

Users click through menus to change the components of a digital desk (e.g., swap the monitor size, change the keyboard color, pick a desk plant), building a personalized workspace.

Bento Box Lunch Packer

Users are given a 4-section grid. They click buttons to drop different food items into the sections, aiming to balance a visual "nutrition score" or "budget score."

Plant Watering Dashboard

Users add specific plants (e.g., Fern, Cactus) and the app creates a countdown timer for each based on its watering needs. Clicking "Water" resets the timer and triggers a water droplet animation.

Mood-Based Movie Selector

A 3-question branching quiz (e.g., "How much time do you have?", "Want to laugh or cry?"). Based on the path chosen, the app reveals one specific movie poster and synopsis.

Assignment Management

A dashboard that a student can view and submit assignments in different courses.