
Meet your instructor, see who this course is built for, and learn how ShopAssist AI will take you from exam prep to real Claude engineering.
Understand the exam format, scoring, and the weight of each of the eight domains so you can plan your preparation strategically.
Learn what the exam expects from a developer: turning architecture decisions into tested, secure, working Claude systems.
Map every layer of a real Claude application, from client and backend to tools, state, monitoring, and security boundaries.
Master the HTTP request model behind every Claude call and understand when to use the SDK versus the raw API.
Build the data-handling foundation needed for API requests, tool schemas, structured output, and persistent application state.
Learn how async functions, concurrent calls, and dependency ordering keep Claude applications fast and responsive.
Understand tokens, context windows, sampling, and non-determinism so you never treat model output like deterministic code.
Compare zero-, one-, and multi-example prompting and learn when examples improve results enough to justify the extra context.
See how system instructions, user content, and project configuration differ across the API, Claude Code, claude.ai, and Claude Desktop.
Get introduced to ShopAssist AI, the customer-support application you will evolve throughout the course into a production-style agentic system.
Learn how the hands-on labs work in this course, how to open and run the Jupyter notebook, complete the coding tasks, and follow along with the lesson videos - no local setup or API key required.
Send one request to Claude from Python, read the response object, and see why max_tokens is a ceiling you must check with stop_reason.
See that the API remembers nothing between requests, keep the conversation in a list your code sends every turn, and watch the input tokens grow.
Put a small web server between a chat page and Claude: the browser posts to your server, the server adds the system prompt and history, and only it calls Claude.
Give Claude a role and scope in the system prompt, then enforce a rule that must always hold with a gate in code that runs before any request leaves.
Build a six-case test set with expected verdicts, score a prompt in code, find the gap it reveals, and compare two prompts by their scores.
Turn business needs like latency, cost, privacy, and availability into concrete technical constraints for your Claude application.
Follow a Claude system from requirements to monitoring and learn how prompt changes and model upgrades fit into its lifecycle.
Work with content blocks, image input, thinking output, and mixed response types in the Messages API.
Send a shipping-label picture as an image content block next to the question, and see what a picture costs in tokens.
Make Claude applications feel responsive with streaming, async processing, and WebSockets, and learn when streaming actually helps.
Replace create with messages.stream, print the text as it arrives, and read stop_reason and usage from the final message.
Integrate Claude through direct API, SDKs, or third-party providers while keeping workloads isolated and application context clean.
Define one tool, see Claude stop with tool_use, run the function in your code, send the tool_result back, and get the final answer.
Make Claude fill a JSON schema so the output always parses, and see why a schema-valid value can still be wrong. Exam lane and current product both covered.
Structure production prompts with clear instruction placement, output constraints, and strict separation of data from instructions.
Improve prompts systematically from observed failures using representative, boundary, and negative examples without overfitting.
Control what the model sees with pruning, compaction, persistent facts, and subagent isolation to prevent context drift and bloat.
Validate and parse model output defensively so confident but wrong responses never reach your business logic.
Allow null for unknown values, validate the fields in code, and when validation fails send the exact error back to Claude for a bounded retry.
Run the checked extraction over a folder of emails, keep a status per record, save the batch as JSON, and route the unclear ones to a person.
Trace the full path from a tool request to a real backend operation and learn why requesting an action is not executing it.
Write the loop that sends the conversation with tools, reads stop_reason, runs every tool_use block, returns the results, and repeats until end_turn.
Design tool names, descriptions, schemas, and error responses that make Claude's tool selection predictable.
Return not-found as data and real failures as structured errors with a flag, a category, a retryable flag, and separate customer and developer messages.
Choose the right extension mechanism for each need by weighing portability, maintenance, and security boundaries.
Understand how MCP clients and servers communicate and how tools, resources, and prompts are exposed over stdio and sockets.
Turn existing services into reusable MCP infrastructure with versioned interfaces and solid error handling.
Expose the tools through an MCP server, register it with Claude Code, and watch Claude Code discover and call them, including a structured refusal.
Learn when a predictable workflow beats an autonomous agent and how to weigh control, flexibility, cost, and reliability.
Understand the runtime loop that makes an application agentic, from tool request to harness dispatch to completion.
Build agents with the Claude Agent SDK using instructions, tools, hooks, and deterministic actions.
Run a Claude Code agent from Python with query(), allowed tools and a PreToolUse hook that denies a delete.
Coordinate specialized subagents with manager and supervisor patterns while avoiding unnecessary agent proliferation.
Split the work between a coordinator and two subagents with their own tools, pass context explicitly, and see what each agent really receives.
Help multi-step agents keep the right state using summaries, durable memory, and subagent isolation.
Compare what Strands, LangGraph, and PydanticAI provide and when a simple custom loop is the better choice.
Choose between self-hosted and managed agent execution based on control, scaling, observability, and operational ownership.
One loop with a verification gate, a hook that checks every tool call before it runs, case facts kept in code, and a handoff to a person.
Compare Opus, Sonnet, and Haiku and learn why the largest model is not always the right choice.
Match reasoning depth to task difficulty using fast mode, extended and adaptive thinking, and effort levels.
Apply practical model-selection reasoning, including routing difficult work to stronger models instead of using one model for everything.
Treat model upgrades like dependency changes with version pinning, regression testing, and rollback plans.
Track input and output tokens, set budgets, and estimate costs to design cost-aware Claude applications.
Cut cost and latency with prompt caching and learn when the Message Batches API beats realtime requests.
Mark a 1,900-token policy with cache_control and watch usage switch from cache write to cache read.
Use Claude within normal engineering discipline: version control, pull requests, code review, and incremental refactoring.
Manage prompt versions, model pinning, CLAUDE.md, settings.json, and plugins for reproducible environments.
Configure a repository for Claude Code with the CLAUDE.md hierarchy, rules, and settings.json.
Learn when to use Skills, slash commands, agents, or Agent Memory to extend Claude Code.
Set up a project for Claude Code: conventions in CLAUDE.md, a path-scoped rule, and a skill with a description and allowed tools, then see them used.
Manage sessions and choose between headless, streaming, and auto modes for each workflow.
Run Claude Code as a CI reviewer in print mode with JSON output and a schema, read the verdict in a script, and let the exit code decide.
Diagnose whether a failure comes from your integration, input, tools, parsing, or the model before you try to fix it.
Read agent traces step by step to find the earliest incorrect step and reproduce the real failure.
Respond to each failure class with the right strategy, from retry and correction to fallback and human intervention.
Make requests fail on purpose: a wrong key, a removed parameter, a 50 ms timeout; learn which errors to retry and which to fix.
Detect silent quality degradation in production and feed real failures back into your evaluation datasets.
Defend against direct and indirect prompt injection and learn why stronger prompt wording is not a security boundary.
An order note tries to force a 500 refund; the prompt labels tool data as data and the code gate limits the money.
Protect PII and sensitive data by handling untrusted input safely and minimizing what the model sees.
Keep access decisions in your application, not in the model, with proper authentication, authorization, and approvals.
Handle API keys and credentials safely across environments and keep them out of source control, prompts, and logs.
Replace emails, card and phone numbers with placeholders before the request; keep the key in the environment and out of git.
Build defense in depth with least privilege, tool restrictions, and hooks that deterministically block destructive actions.
A PreToolUse hook in .claude/settings.json exits with 2 and stops rm and .env access in a headless run.
Prepare for the Claude Certified Developer - Foundations exam while building a practical Claude-powered application from the ground up.
This course is designed around the implementation skills tested in the certification exam. Instead of only learning Claude concepts, you will build ShopAssist AI, a realistic customer support application for an online store. The project starts with Claude API fundamentals and gradually evolves into a production-style AI system with multi-turn conversations, structured outputs, backend tools, MCP integrations, agentic workflows, evaluation, debugging, security controls, and production optimization.
The course covers all eight certification domains:
Domain 1: Agents and Workflows. You will learn when to use deterministic workflows or agents, how agent loops work, how to build with the Claude Agent SDK, how coordinators and subagents communicate, and how agent frameworks and deployment models differ.
Domain 2: Applications and Integration. You will work with REST APIs, SDKs, Messages API concepts, application state, streaming, asynchronous execution, requirements, system lifecycle, configuration management, and production integration patterns.
Domain 3: Claude Code. You will learn repository setup, CLAUDE, rules, settings, Skills, commands, agents, Agent Memory, sessions, and Claude Code operating modes.
Domain 4: Eval, Testing, and Debugging. You will build evaluation workflows, grade Claude outputs, distinguish model failures from integration failures, analyze traces, choose recovery strategies, and prevent regressions.
Domain 5: Model Selection and Optimization. You will compare Claude model families, reasoning modes, latency and quality trade-offs, model versioning, token budgets, cost modeling, prompt caching, and realtime versus batch processing.
Domain 6: Prompt and Context Engineering. You will learn instruction placement, few-shot prompting, structured output, context management, defensive output handling, and techniques for preventing context drift and bloat.
Domain 7: Security and Safety. You will learn prompt-injection defense, handling untrusted input, protecting personally identifiable information, authentication, authorization, secrets management, least privilege, hooks, and layered guardrails.
Domain 8: Tools and MCPs. You will learn tool contracts, tool execution, built-in and custom tools, Skills, MCP server architecture, reusable MCP integrations, and safe backend operations.
Throughout the course, ShopAssist AI connects these concepts into one practical application. You will see how requirements affect model choice, how Claude requests real backend operations, how application code enforces sensitive rules, how failures are debugged, and how evaluation and monitoring help keep behavior reliable over time.
By the end of the course, you will understand how the CCDV-F exam topics connect to real Claude development. You will also have a practical mental model for building Claude-powered applications that are testable, maintainable, secure, cost-aware, and closer to production-ready.