Reference

Syllabus

The PDF is the authoritative version. Everything else on this site is drawn from it.

ENTP 6314 / MIS 6361 · Wednesday, 7 to 9:45 PM, JSOM 13.501

ENTP 4332 / ITSS 4332 · Tuesday, 1 to 3:45 PM, SOM 22.110

Professor Anavir Shermon · anavir.shermon@utdallas.edu · Office JSOM 4.222

Graduate section

AssessmentWeightDue
Class Participation20%Ongoing
First App and Build Memo10%9/16
Product Proposal5%9/30
Discovery Report20%10/28
MVP Demo10%In class 11/4
Individual Build Log15%12/9
Final Venture Package and Pitch Presentation20%Pitch 12/2, package 12/9

Undergraduate section

AssessmentWeightDue
Class Participation20%Ongoing
Attendance5%Ongoing
First App and Build Memo5%9/15
Product Proposal5%9/29
Progress Week Meeting5%In class 10/6
Discovery Report15%10/27
MVP Demo10%In class 11/3
Individual Build Log15%12/8
Final Venture Package and Pitch Presentation20%Pitch 12/1, package 12/8

Full reading list

Session 1 — Introduction

Session 2 — Installing and Understanding Tools, Part I

Session 3 — Installing and Understanding Tools, Part II

  • Submit your group project team composition
  • Handbook Parts 4–6

Session 4 — Finding Market Problems

Session 5 — Understanding Customers

Session 6 — Pricing and Business Models

  • Submit "Product Proposal" on Canvas

Session 7 — Building a Moat, or Progress Week

Session 8 — Mapping Product Infrastructure

  • Handbook Part 11

Session 9 — Polishing Design and Testing

Session 10 — MVP Demo Day

  • Handbook Part 15
  • Submit the "MVP Demo" assignment package

Session 11 — Developing Compelling Pitches

Session 12 — Product Iteration and Pitch Practice

No assigned readings.

Session 13 — Pitch Day

No assigned readings.

Setup checklist

Do this before Session 2, on 9/2.

Set aside an hour. Most of it is waiting for things to install.

1. Get a Claude account with Claude Code access. The Pro plan is about $20 a month and is required course material, the same way a textbook would be. Sign up at claude.ai.

2. Install VS Code. It is free, at code.visualstudio.com. VS Code is just a window that shows your files. Think of it as Finder or File Explorer with better lighting. You will type notes into it, never code. Claude writes the code. You write things like your build log and your project's instructions file.

3. Install Claude Code. There are two ways to run it, and you only need one. They are the same tool underneath, so everything in this handbook works either way.

The terminalThe desktop app
What you seeA text window where you typeA normal application window with panels
What this handbook assumesThis oneWorks fine, with notes where it differs
Easier to get help withYes, because most guides online are written for itFewer guides so far
Easier to look atNoYes

Pick the terminal if you have no strong feeling either way, because it is what this handbook's instructions are written against and what the person next to you is most likely using. Pick the app if the terminal genuinely puts you off, because a tool you avoid is worse than one you find slightly ugly. You can change your mind later, and switching costs you nothing except an evening.

3a. If you chose the terminal. Open it. On a Mac, press Cmd and Space, type "Terminal," and hit enter. On Windows, search for "PowerShell." Then paste the one line for your computer.

TERMINAL, Mac or Linux:

curl -fsSL https://claude.ai/install.sh | bash

TERMINAL, Windows PowerShell:

irm https://claude.ai/install.ps1 | iex

Copy only what is inside the box. You'll know it worked when the terminal stops scrolling and gives you back a normal blank prompt with no red text.

3b. If you chose the desktop app. Download Claude for your computer from claude.ai, install it the way you would install any other application, and sign in with the same account from step 1. Then click the Code tab at the top.

Claude Code is already inside the app, so there is nothing else to install and you can skip the terminal line above.

One thing to be careful about, and it is the only real trap in the app. There are three tabs: Chat, Cowork, and Code. Only the Code tab can see the files in your project, and only the Code tab reads your project's instructions file from Part 4. Work in the Chat tab by accident and nothing looks broken, you just quietly get worse answers for reasons you cannot see. If you are unsure which tab you are in, look at the top of the window before you start typing.

4. Make a course folder and start Claude Code.

If you are using the desktop app, read this step anyway. The folder still has to exist and you still have to point Claude at it. The app's version of this step comes after.

TERMINAL

mkdir entp6314
cd entp6314
claude

A browser window will open to log you in. When it finishes, you have an AI software engineer running in your terminal.

Where did that folder go? Your terminal is always standing in one folder, the way a Finder window is always showing one folder. mkdir entp6314 made a new folder inside wherever you were standing, and cd entp6314 walked into it. If you ever lose track, type pwd and it tells you exactly where you are standing:

TERMINAL, with what it answers back:

pwd
/Users/yourname/entp6314

That is the same folder you would see in Finder under your name. Open Finder and look at it once now, so the terminal and the window on your screen connect to the same place in your head.

What you will see when Claude Code wants to do something. Claude Code asks permission before it edits a file or runs a command. You will see a prompt with the action and a yes or no choice. This is normal and it is not a warning that something is wrong.

  • Editing files inside your own project folder, running the app, installing what it needs: approve these freely.
  • Deleting things, or anything touching a folder outside your project: read it before you approve.

Saying no does not break anything. It just tells Claude to try something else.

In the desktop app the same thing happens through a setting rather than a question. Next to the send button there is a selector with a few choices, and the two worth knowing now are Manual, where Claude asks before it changes anything, and Plan, where it writes out what it intends to do and waits. Start on Manual. Part 4 covers Plan mode, which you start using at Session 3.

5. Create your accounts.

AccountWhat it is forNeeded byCost
claude.aiClaude Code itselfSession 2, 9/2About $20 a month, Pro plan
github.comThe off-site copy of your project, and the link you hand inSession 3, 9/9Free
vercel.comPuts your app on the internet at a real URLSession 3, 9/9Free tier
formspree.ioCollects email signups on your landing pagesSession 4, 9/16Free tier
supabase.comYour database, once you need oneSession 8, 10/21Free tier

Sign up for all of them now, even the later ones. It is ten minutes and it is done. (At Session 8 your team may also want a Google AI Studio, Stripe or Resend account, depending on which component you choose to add. You do not need those yet, and Part 11 walks you through each one when you get there.)

GitHub is worth one extra sentence, because you will hear the name all semester: it is a website that keeps a copy of your project, and it is where the "repo link" that assignments ask for comes from. You will barely visit the site. Claude Code talks to it for you. Part 5 explains what is actually happening.

Every time you sit down to work

Your terminal does not remember where you were last time. It always starts at the top, in your home folder. So every session begins the same way: walk into the folder of the project you are working on, then start Claude Code.

TERMINAL

cd entp6314
cd first-app
claude

Replace first-app with whichever project you are working on that week. Part 4 shows the full layout, so you can see what lives where.

You'll know it worked when Claude Code starts and tells you the folder it is working in, and that folder is your project. If it does not, you are standing one level too high. Type ls to see what is around you, cd foldername to go in, and cd .. to go back up.

In the desktop app, opening a project is the same idea with buttons instead of typing. Click the Code tab, choose Local, then click Select folder and pick the project you are working on. Selecting the folder is the app's version of cd, and it is worth being just as careful about it. The app remembers your recent projects in the sidebar, so after the first time it is one click.

This is the single most common way students lose an evening, on both paths. Claude with no project loaded, or with the wrong one loaded, will answer your questions and build things in the wrong place, and it will do it confidently.

If the install fails

Do not fight it alone for an hour. The official documentation is at code.claude.com/docs. Or open regular Claude at claude.ai and ask:

PROMPT

I am installing Claude Code on [Mac / Windows] and got this error:

[paste the entire error]

Explain the fix step by step. I am a beginner and I have never used a
terminal before.

Then bring it to class or the class channel. Debugging together earns participation credit.

The eight commands you type by hand

Everything more complicated than these, Claude Code runs for you. You will use these all semester.

CommandWhat it does
cd foldernameGo into a folder
cd ..Go back up one level
lsList the files here. On Windows, dir
pwdTell me where I am
mkdir nameMake a new folder
clearClean up the screen
up arrowRepeat your last command
claudeStart Claude Code

A terminal looks intimidating because it is mostly black and has no buttons. It is a text conversation with your computer. You already know how to have a text conversation.

Two windows, one screen

The same black window does two different jobs, and telling them apart matters.

You are inHow you can tellWhat you type
The terminalA short prompt ending in $ or >The eight commands above
Claude CodeIt started after you typed claude, and it answers in sentencesPlain English, and slash commands

Slash commands are instructions to Claude Code itself rather than requests to build something. There are only three you need:

CommandWhat it doesWorks in
/initCreates your project's CLAUDE.md instructions file. Part 4Both
/compactClears out the clutter when a long session starts going in circles. Part 4Both
/contextShows you what Claude loaded at the start of the session, including your CLAUDE.md. Part 4Terminal

To leave Claude Code and go back to the plain terminal, type /exit.

If you are using the desktop app, you type slash commands into the same prompt box, or you can click the + button and choose Slash commands to see the list. A few commands that open a panel in the terminal behave differently in the app, and /context is one of them, so Part 4 gives you a check that works either way.

A note for app users on this whole section. You still meet the terminal eventually, because Part 5 uses it and the app has a terminal panel built in. None of the eight commands stop being useful. You just need them less often.


Troubleshooting

What is happeningWhat to do
An error message, anywherePaste the entire error into Claude Code: "Explain this in plain English, then fix it." Never retype or shorten an error.
The fix did not work twice in a row"Stop. Do not patch again. Diagnose the root cause from scratch, list three hypotheses, and test them one at a time."
It worked before and is broken now"Show me recent commits and revert to the last working one." Then try the feature again in smaller steps.
Claude seems confused or is going in circlesLong sessions degrade. Type /compact, or start a fresh session. CLAUDE.md means it re-reads what matters.
Claude says it is done but it is not"Walk me through how to verify this myself in the browser, step by step." Then actually do it.
You do not understand what it changed"Explain what you just changed as if to a smart non-programmer, in five sentences." Never let unexplained changes pile up.
The app is slow or the AI call takes forever"Show me what is slow here and why. What is the cheapest fix?" Often you are sending far more text to the API than you need to.
Git says there is a merge conflictTwo of you edited the same lines. Use the prompt in Part 5, "When two people change the same thing," and decide with the other person. Never let Claude pick for you.
A teammate's work is missing from your copyYou have not pulled. "Pull the latest changes from GitHub." Nothing is lost; it is on main or still on their branch.
Your pull request has sat unmerged for daysAsk whoever has the integrator hat to review it. Anything you build on top of an unmerged branch gets harder to merge every day.
A commit is being refusedIf your team added a hook (Part 11), it is doing its job. Read what it says before you consider turning it off.
You have been stuck 45 minutesPost in the class channel: your goal, the error, and what you tried. Helping each other debug earns participation credit.

The one that catches everyone

If you find yourself sending increasingly frustrated messages to an AI, stop. Close the terminal. Go do something else for twenty minutes.

The pattern where you send the same request eight times with more emphasis each time has never worked for anyone. When two attempts have failed, the approach is wrong. Change the approach.


Glossary

Acceptance criteria The "done means" line in your PRD. A description of what you would see with your own eyes if the feature worked.

Agent An AI model that can take actions in a loop, checking results and trying again. Claude Code is one. What makes it an agent rather than a chat window is that it has tools.

Analytics A counter on your live site that records how many people visited and which pages they opened. In this course it is Vercel Analytics, installed in 11a of Part 11.

API How one piece of software talks to another.

API key A password for an API. Treat it like a password, because it is one.

Backend The logic that does the work. The kitchen.

Barrier Whatever stops a competitor copying an advantage you have. Hamilton Helmer's test for a moat is a benefit plus a barrier, and the barrier is usually the harder half to find.

Beachhead The small, specific group of customers you set out to win completely before trying to win anybody else. For an AI product it is usually a workflow rather than a demographic.

Bottom-up market sizing Working out how big a market is by counting real customers and multiplying by a price you could defend. The opposite of "one percent of a fifty-billion-dollar market," which is a sentence rather than a number.

Branch Your own copy of the project to work in, so what you break is broken only for you. You merge it back when it works.

Brand Customers will pay more for your product than for an identical one, because of what they believe about you. It usually takes years to build.

Commit A save point in your project's history, stored on your own machine until you push it.

Complement Something that gets more valuable when a related thing gets cheaper, because the two get used together. Cheap flights made hotels more valuable. As intelligence gets cheap, the question worth asking is what its complements are.

Context window The AI's short-term memory. It is why long sessions get worse and why /compact helps.

Cornered resource Exclusive access, on good terms, to something valuable nobody else can get, such as a patent or a dataset. One of Helmer's seven powers.

Cost of goods sold (COGS) What it costs you to deliver your product to one more customer. For an AI product that includes every request to the model, which is why a heavy user can cost more than they pay.

Cost-plus pricing Working out what something costs you and adding a markup. Easy to calculate, and it tells you nothing about what the customer would actually pay.

Counter-positioning A new way of doing business that a bigger competitor could copy but will not, because copying it would hurt their existing revenue. One of Helmer's seven powers.

Customer acquisition cost (CAC) What you spend, on average, to win one new paying customer.

Database Where information is stored between visits. The pantry.

Deploy To put your app on the internet so other people can open it.

Distribution How a product reaches its customers. A company that already sells to millions of people can put a new product in front of all of them cheaply, which a newcomer cannot.

Dynamic pricing A price that changes with conditions, usually demand. Uber's surge pricing is the example most people have met.

Environment variable The safe place to keep API keys, outside your code.

Founder–market fit Whether you personally have access, experience, or credibility in the market you picked. Usually decided by whether you can get five of these people on the phone this week.

Freemium A free version that is useful on its own, plus a paid version some free users upgrade to. For an AI product every free user still costs you inference, so be careful how generous the free tier is.

Frontend What users see and click. The dining room.

Git The save-point system that runs on your own laptop. Keeps the history, lets you go back.

GitHub The website that holds a copy of that history. Where your repo link comes from. Not the same thing as git.

Gross margin What is left of each dollar of revenue after the cost of delivering the product, as a percentage. Charge $50, spend $20 delivering it, and your gross margin is 60%.

Hair-on-fire problem A problem somebody is already actively trying to solve, badly, right now. The clearest sign of one is a workaround.

Hallucination When AI confidently makes something up. The reason for every verification rule in this handbook.

Hook An automatic check that fires when something happens, whether the AI agrees with it or not. What you use when an instruction is not strong enough.

Horizontal product One tool sold to everybody, whatever industry they are in. A spreadsheet or a general chatbot. Compare vertical product.

Jevons paradox When something gets cheaper to use, total use of it often goes up rather than down, because it becomes worth using for things nobody would have bothered with before. Named after William Stanley Jevons, who noticed it about coal in 1865.

LLM Large language model. The AI itself.

localhost Your app running only on your own machine. Nobody else can see it.

Main The version of your team's project that works. It is what is deployed and what you hand in. Nobody edits it directly.

Merge Adding an approved branch into main. On a team, one person does this.

Merge conflict Two people changed the same lines and git will not guess which version wins. You decide, with the other person, out loud.

Moat Whatever makes it hard for somebody else to copy you and take your customers.

MVP Minimum viable product. The smallest thing that tests whether your idea is right.

Network effects The product gets more valuable to each user as more people use it. One of Helmer's seven powers.

Outcome-based pricing The customer pays only when the product achieves a defined result, such as a support ticket resolved without a human. How you define the result usually matters as much as the price.

Per-seat pricing A fixed price for each person who uses the product, usually per month. Awkward for AI products, because if the AI does the work of three people the customer needs fewer seats.

Plan mode A setting that makes Claude Code show you its plan and wait, instead of starting work straight away. Shift+Tab in the terminal, or the mode selector in the desktop app.

Positioning statement One sentence saying who the product is for, what problem it solves, and why it beats what they use today. "For [segment] who [problem], [product] is a [category] that [benefit], unlike [alternative], because [proof]."

PRD The one page describing what you are building, before you build it.

Price discrimination Charging different customers different prices for much the same thing. Student discounts, business tiers and volume deals are all ordinary examples.

Probe A deliberately disposable thing you build to think an idea through and to give other people something concrete to react to. Not a product, and not meant to survive.

Process power A way of working, built up over years, that competitors cannot copy even when they can see it. One of Helmer's seven powers, and rare in young companies.

Project memory A file in your project that Claude reads automatically at the start of every session, so you stop re-explaining the same things. Yours is called CLAUDE.md.

Prompt What you tell the AI.

Publishable key A key that is safe for visitors to see, because it can only do harmless things. Supabase and Stripe each give you one. Compare with a secret key.

Pull Bringing your teammates' merged work down onto your laptop. Do it before you start, every time.

Pull request Asking for your branch to be added to main, so a teammate can look before it goes in.

Push Sending your commits from your laptop up to GitHub. Committing is not pushing.

Repo Short for repository. Your project folder stored on GitHub. When an assignment asks for a repo link, it wants the GitHub web address.

Row level security The rules in a database saying who may read or change each row. Without them, a database will usually let any visitor read everything.

Sandbox A practice version of a service in which nothing is real. In Stripe's sandbox (also called test mode) the cards are fake and no money moves.

Scale economies Your cost per unit falls as you grow, so a smaller rival cannot match your price without losing money. One of Helmer's seven powers.

Secret key A key that must never be seen by visitors. It is only used by code that runs on the server, and it lives in .env.local and in Vercel's settings.

Seven Powers Hamilton Helmer's list of the advantages that can last: scale economies, network effects, counter-positioning, switching costs, brand, cornered resource, and process power. Each needs a benefit, which improves your cash flow, and a barrier, which stops competitors copying it.

Sherlocking When the platform you build on adds your product as a built-in feature. The risk every AI wrapper runs.

Skill A procedure you wrote down once so Claude can follow it on request instead of you explaining it again.

Slash command An instruction to Claude Code itself rather than a request to build something. /init, /compact, and /context are the three you need. Any skill you make adds one of its own.

Storage bucket A folder, kept by a service such as Supabase, for files that your users upload.

Subagent A helper Claude sends off on a side job with its own workspace. It reports back a summary rather than every step.

Substitute Something people buy instead of another thing. Tea is a substitute for coffee. When one gets cheaper, the other sells less.

Switching costs What a customer would lose by moving to a competitor, such as their data, their setup, or the time it took to learn your product. One of Helmer's seven powers.

Tool Something the AI can actually do rather than talk about: read one of your files, write a new one, run your app, search the web. Tools are what turn a chat window into an agent.

Two-sided marketplace A business serving two groups who need each other, such as Uber's riders and drivers. The hard question is which side to charge and which to make it cheap for.

Unit economics Whether you make or lose money on one customer, before counting the fixed costs of running the company. Price minus what that customer costs you to serve.

Usage-based pricing The customer pays for how much they use, counted in something like requests, credits or tokens.

Value chain Every company involved in getting a product to the customer, in order, and what each contributes. The useful question is who holds the scarce part.

Value-based pricing Setting the price from what the product is worth to the customer, such as the hours or money it saves them. This is where the ceiling on your price comes from.

Verification loop A check Claude runs on its own work before claiming it is finished. Useful, and still a claim.

Version control The general name for what git does: keeping a history you can move around in.

Vertical product One industry's workflow handled all the way down, and nobody else's. Software for personal-injury law firms, or for dental practices. Compare horizontal product.

Walking skeleton The thinnest end-to-end version of your product where the core action works, badly.

"Why now" The specific reason your idea could not have been built three years ago. For an AI venture it has to name a capability that crossed a threshold and roughly when. "AI is big" is not a why-now.

Willingness to pay What somebody would actually hand money over for, which is usually a much shorter list than what they say is a good idea.

Workaround The spreadsheet plus email plus group chat rig people build when no product exists. Nobody builds one for a problem they do not have, which is why it is the clearest signal in customer research.

Wrapper A product built on top of somebody else's AI model. The criticism is about how thin the layer on top is, rather than about using a model at all.

Anything not on this list, ask Claude. "Explain [term] to someone who has never written code" works every time.