Week 7 Curriculum: Building AI Apps
Module 1: Client-server Architecture
Learning Objectives
By the end of this module, you are able to:
- Analyze client-server architecture features, use cases, and examples given a system diagram.
- Identify the appropriate layer (client or server) for a specific unit of code.
- Evaluate the benefits of logical separation of concerns in distributed systems.
- Explain the necessity of specialized protocols like HTTP, LSP, and MCP.
- Trace the HTTP protocol flow and distinguish between Header and Body functions given a raw request.
- Differentiate between a Resource and its various Representations.
- Deconstruct a URL into its component parts (scheme, host, path, query).
- Analyze a RESTful endpoint to identify Nouns (resources) and Verbs (actions).
References
Module 2: FastAPI
By the end of this module, you are able to:
Learning Objectives (Section 1): Fast API
- Evaluate the key features of FastAPI for building high-performance APIs.
- Distinguish between
devand production servers - Implement Pydantic models to validate and serialize data.
- Apply Python type hints and docstrings to enhance code quality.
- Appreciate the value of well-written documentation, as exemplified by FastAPI docs
- Construct a simple RESTful API with multiple resources (
items,users) and methods (GET,POST). - Structure a FastAPI application using
APIRouterfor modular routing. - Utilize advanced Pydantic features including
BaseModel,Annotated,Literal, nested structures, and@field_validator.
Learning Objectives (Section 2): Becoming a 10x Developer
- Distinguish between standard smart IDE features and AI-powered coding assistance.
- Classify AI agents based on Interaction and Environment dimensions.
- Analyze factors contributing to the operational cost of Coding Agents.
- Apply efficiency strategies to enhance development velocity.
- Demonstrate proficiency with VS Code navigation shortcuts (Quick file navigation, Go to Definition, Rename symbol).
- Demonstrate proficiency with VS Code editing shortcuts (Multi-cursor, Find/Replace, Global Search).
- Execute file comparisons using VS Code’s diff tools.
- Explain the role of MCP servers in extending Coding Agent capabilities.
- Justify the necessity of providing LLMs with up-to-date documentation.
References
Module 3: Building an MCP Server
Learning Objectives
By the end of this module, you are able to:
- Construct a minimal MCP Server using the MCP Python SDK or FastMCP.
- Refactor an existing FastAPI server into a compliant MCP server using
fastapi-mcp. - Integrate an Agent with an MCP server using an MCP Client (Google ADK, LangChain, or Pydantic AI).
References
Module 4: Virtualization
By the end of this module, you are able to:
Learning Objectives
- Distinguish between a Container (runtime) and an Image (build-time artifact).
- Utilize DockerHub to locate and pull official container images.
- Orchestrate multi-container environments using Docker CLI and Docker Compose.
- Configure Docker volumes to persist data generated by running containers.
- Differentiate between execution stack layers: Hardware, Platform, Runtime, and Application.
- Establish a secure database connection using the
psycopgdriver. - Construct schema definitions and execute database queries using SQLAlchemy.
- Manage database schema evolution using
dbmatemigration scripts.
References
Module 5: Deployment
Learning Objectives
By the end of this module, you are able to:
- Configure a FastAPI application for production by separating configuration settings from code using Environment Variables.
- Deploy a web service to a PaaS provider (e.g., Railway) by integrating with a Version Control System.
- Provision a managed release of PostgreSQL and configure internal networking to connect it with the web service.
- Diagnose deployment errors (e.g., Build failures, Crashing processes) by inspecting platform logs.
- Validate the public deployment by executing requests against the production URL.
- Implement a Continuous Deployment (CD) workflow where
git pushtriggers automatic rebuilding and redeployment.