# Week 1 Syllabus: History of Vibe Coding & PRD-First Development

## Course Information

| | |
|---|---|
| **Week** | 1 of 12 |
| **Topic** | History of Vibe Coding & PRD-First Development |
| **Project Phase** | Project 1 Start |
| **Prerequisites** | Basic programming knowledge, Git fundamentals |

---

## Learning Objectives

By the end of this week, students will be able to:

1. **Explain the history and evolution** of AI-assisted coding ("vibe coding")
2. **Define "disciplined vibe coding"** and distinguish it from undisciplined approaches
3. **Write a complete PRD** before any AI-assisted coding
4. **Set up Claude Code** and verify proper installation
5. **Execute their first Claude Code session** with proper context

---

## Lecture Schedule

### Part 1: The History of Vibe Coding (40 minutes)

| Time | Content |
|------|---------|
| 0:00-0:10 | What is "vibe coding"? (Karpathy's definition, Feb 2025) |
| 0:10-0:25 | The evolution: GitHub Copilot → ChatGPT → Claude Code |
| 0:25-0:35 | The Discipline Spectrum: Chaos vs Control |
| 0:35-0:40 | Discussion: Where do you want to be on the spectrum? |

### Part 2: PRD-First Development (40 minutes)

| Time | Content |
|------|---------|
| 0:40-0:55 | Why PRDs matter for AI-assisted development |
| 0:55-1:05 | Anatomy of a good PRD |
| 1:05-1:15 | The "Non-Goals" section: AI cannot infer from omission |
| 1:15-1:20 | Live PRD walkthrough |

### Part 3: Claude Code Setup & First Session (40 minutes)

| Time | Content |
|------|---------|
| 1:20-1:35 | Installing Claude Code (live demo) |
| 1:35-1:45 | Configuration and authentication |
| 1:45-1:55 | First conversation: The `/init` command |
| 1:55-2:00 | Q&A and wrap-up |

---

## Required Readings

### Before Class
- [Andrej Karpathy's "Vibe Coding" Tweet](https://x.com/karpathy/status/1886192184808149383) (Feb 3, 2025)
- [Claude Code Overview](https://code.claude.com/docs/en/overview)

### After Class
- [Claude Code Best Practices](https://www.anthropic.com/engineering/claude-code-best-practices)
- Course PRD Template

---

## Lab Exercise

### Objective
Write a PRD and build a simple greeting CLI using Claude Code.

### Deliverables
1. Completed PRD for greeting CLI
2. Working CLI that:
   - Accepts a name as input
   - Returns a personalized greeting
   - Handles edge cases (empty name, special characters)
3. Screenshot of successful Claude Code session

### Time Allocation
- PRD writing: 20 minutes
- Claude Code implementation: 25 minutes
- Testing and refinement: 15 minutes

---

## Resources

### Documentation
- [Claude Code Documentation](https://code.claude.com/docs/en/overview)
- [Installation Guide](https://code.claude.com/docs/en/installation)

### Templates
- [PRD Template](../../templates/prd-template.md)
- [CLAUDE.md Template](../../templates/claude-md-template.md)

### Support
- Office hours: TBA (announced during the first week)
- Course Discord: TBA (shared in class)

---

## Key Takeaways

1. **Vibe coding** is a legitimate development paradigm when practiced with discipline
2. **PRDs are essential** - AI cannot infer your intentions from omission
3. **Non-goals are critical** - Explicitly state what you're NOT building
4. **Environment setup** is foundational - Get it right from day one

---

---

*Week 1 of 12 | Vibe Coding 101*
