Homework 3: Open-Ended AI Project

Important: Read this whole document before you start.

Goal

In this assignment, you will choose one of three project options and build something real with AI/ML tools. Each option targets different course objectives and lets you explore an area that interests you.

You may work individually or in pairs. If you work in a pair, each person must write their own reflection section (see below), and both partners should be able to explain every part of the project. A good test: if someone asked either of you “why did you do X?”, both of you should be able to answer confidently.

Choose Your Project

Pick one of the following options.

Option A: Build an LLM-Powered Application

Build an application that uses an LLM API (e.g., OpenAI, Anthropic, Google Gemini) to do something useful. Examples:

What you need to demonstrate (OG-LLM-APIs):

Suggested models: Claude 3.5 Sonnet or Claude 4 Haiku (via the Anthropic API), GPT-4o-mini (via OpenAI), or Gemini 2.0 Flash (via Google AI Studio). All have free tiers or student credits available.

Option B: Pretrained Embeddings Project

Use a pretrained model’s embeddings to solve a problem involving similarity or search. Examples:

What you need to demonstrate (OG-Pretrained, TM-Embeddings):

Suggested models: OpenAI text-embedding-3-small, Sentence Transformers (all-MiniLM-L6-v2), or CLIP (openai/clip-vit-base-patch32) for cross-modal image+text embeddings. For images, torchvision models like EfficientNet_V2 or ConvNeXt work well as feature extractors.

Option C: Adversarial Examples or Data Augmentation Experiment

Design and run an experiment about how training data affects model behavior. Examples:

What you need to demonstrate (OG-DataDistribution):

Suggested tools: PyTorch with torchvision.transforms for augmentation, the Adversarial Robustness Toolbox, or FGSM attacks implemented from scratch (a few lines of code). Datasets like CIFAR-10, MNIST, or your HW1 letter dataset work well.

Report Expectations

Your report should be a professionally crafted Jupyter Notebook, suitable to use in a portfolio. Your notebook should be:

We recommend this structure:

  1. Introduction: What are you building and why? What problem does it solve or question does it answer?
  2. Setup: What tools, models, and data are you using? Why did you choose them?
  3. Implementation: Your working code with explanations. Show your work clearly.
  4. Results: What happened? Show concrete outputs, examples, and (where relevant) quantitative evaluation.
  5. Reflection (individual, even if working in a pair): see below.

Reflection Section

Each person must write their own reflection addressing:

If working in a pair, clearly label each person’s reflection (e.g., “## Reflection (Alice)” and “## Reflection (Bob)”).

Using AI Tools

You are welcome and encouraged to use AI assistants (Claude, ChatGPT, Copilot, etc.) as you work on this project. They are powerful learning tools.

However, the goal is for you to learn, not to produce a polished artifact you don’t understand. Here is what we expect:

If you used AI assistance, briefly mention how in your reflection (e.g., “I used Claude to help me understand how to format the API request, then wrote the rest myself”).

How Your Work Will Be Evaluated

Your notebook will be evaluated based on how well it demonstrates the course objectives for your chosen option. Specifically:

Does not yet meet Meets Exceeds
Objective understanding Objectives are not clearly addressed Work demonstrates each listed objective with concrete evidence Work demonstrates deep understanding, e.g., explaining tradeoffs or limitations
Technical execution Code doesn’t run, or results are not shown Code runs, produces correct results, and is clearly explained Code is clean, well-organized, and handles edge cases thoughtfully
Communication Report is hard to follow or missing key sections Report is clear, well-structured, and walks the reader through the work Report is polished, insightful, and portfolio-ready
Reflection Reflection is superficial or missing Reflection shows genuine engagement with what was learned Reflection connects the work to broader ideas or identifies meaningful next steps

Submit

Week 6 Q&A