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 dev and 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 APIRouter for 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 psycopg driver.
  • Construct schema definitions and execute database queries using SQLAlchemy.
  • Manage database schema evolution using dbmate migration 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 push triggers automatic rebuilding and redeployment.

References