Course Objectives

This page lists all course objectives with their assessment criteria.

Tuneable Machines

[TM-MLPParts] (375)

I can compute the forward pass through a two-layer classification neural network by hand (or in simple code) and explain the purpose and operation of each part.

Criteria

  1. I can identify the sequence of operations in a two-layer classification neural network.
  2. I can compute the output of the matrix multiplication and the activation function for each layer.
  3. I can define the following terms in the context of a neural network - input, output, weights, biases, activation function, activation value, logit, probability, and loss.

[TM-LinearLayers] (375)

I can implement linear (fully-connected) layers using efficient parallel code.

Criteria

  1. I can write a correct linear layer computation (matrix multiply plus bias) given weight and bias tensors.
  2. I can explain why linear layers are called "fully connected."
  3. I can predict the shape of the output given input and weight dimensions.

[TM-ActivationFunctions] (375)

I can implement and explain elementwise nonlinear activation functions.

Criteria

  1. I can implement ReLU and explain what it does to negative vs positive values.
  2. I can explain why networks need nonlinear activations between layers.

[TM-Softmax] (375)

I can implement softmax and explain its role in classification networks.

Criteria

  1. I can implement softmax and explain why it produces a valid probability distribution.
  2. I can explain when and why we use softmax in neural networks.
  3. I can identify the relationship between softmax and cross-entropy loss.

[TM-DataFlow] (375)

I can draw clear diagrams of the data flow through a neural network, labeling each layer and the tensor shapes at each step.

Criteria

  1. I can draw a diagram showing layers, activations, and the flow of data through an MLP.
  2. I can label the shapes of tensors at each point in the network (including batch dimension).
  3. I can distinguish between parameters (weights, biases) and activations in my diagrams.
  4. I can trace how a single input becomes a prediction and then a loss value.

[TM-DotProduct] (375)

I can compute and reason about dot products of vectors.

Criteria

  1. I can compute the dot product of two vectors by hand.
  2. I can explain that dot products measure similarity or alignment between vectors.
  3. I can explain what it means geometrically when two vectors have a dot product of zero.

[TM-TensorOps] (375)

I can reason about matrix multiplication and multi-dimensional tensor shapes.

Criteria

  1. Given tensor shapes, I can predict whether a matrix multiplication is valid and what shape results.
  2. I can interpret what each dimension of a tensor represents in context (e.g., batch, features, classes).
  3. I can diagnose and fix shape mismatch errors by tracing dimensions through operations.

[TM-Embeddings] (375)

I can explain how neural networks represent data as vectors (embeddings) where geometric relationships encode meaning.

Criteria

  1. I can explain that similar items should have similar embeddings (high dot product or small distance).
  2. I can interpret a 2D visualization of embeddings and explain why clusters form.
  3. I can explain why learned embeddings can be more useful than hand-crafted features.
  4. I can describe how pretrained embeddings enable transfer learning.

[TM-RepresentationLearning] (375)

I can explain how a neural network learns useful internal representations through training.

Criteria

  1. I can explain that hidden layers transform data to make the task easier for subsequent layers.
  2. I can give an example of a representation that would make classification easier (e.g., linearly separable).
  3. I can explain why deeper networks can learn more complex representations.

[TM-Autograd] (375)

I can explain the purpose of automatic differentiation and identify how it is used in PyTorch code.

Criteria

  1. I can explain that autograd computes gradients of the loss with respect to all parameters.
  2. I can identify which tensors require gradients and why (requires_grad=True).
  3. I can explain what loss.backward() and optimizer.step() do in a training loop.

[TM-Implement-TrainingLoop] (375)

I can implement a basic training loop in PyTorch.

Criteria

  1. I can write a training loop that iterates over batches and updates parameters.
  2. I can correctly order the steps - forward pass, loss computation, backward pass, optimizer step, zero gradients.
  3. I can add validation evaluation at appropriate points in training.
  4. I can track and plot training and validation metrics over epochs.

[TM-Convolution] optional (375)

I can explain the purpose of convolution layers for image processing.

Criteria

  1. I can explain why convolutions are useful for images (local patterns, translation invariance, parameter sharing).
  2. I can describe what a filter/kernel does at a high level.

[TM-LLM-Embeddings] (376)

I can identify various types of embeddings (tokens, hidden states, output, key, and query) in a language model and explain their purpose.

Criteria

  1. I can distinguish between token embeddings (input lookup table) and context embeddings (output of transformer layers).
  2. I can explain how context embeddings incorporate information from other tokens via attention.
  3. I can describe how the final context embedding is used to produce next-token logits (dot product with token embeddings).

[TM-SelfAttention] (376)

I can explain the purpose and components of a self-attention layer (key, query, value; multi-head attention; positional encodings).

Criteria

  1. I can explain what queries, keys, and values represent and how they interact (dot product → softmax → weighted sum).
  2. I can compute a simple attention calculation by hand given Q, K, V vectors.
  3. I can explain why multi-head attention is useful (different heads can attend to different relationship types).
  4. I can explain why causal masking is needed for autoregressive models.

[TM-Architectures] (376-bonus)

I can compare and contrast the following neural architectures - CNN, RNN, and Transformer.

Criteria

  1. I can describe at least one strength and one limitation of each architecture for sequence modeling.
  2. I can explain why Transformers have largely replaced RNNs for language tasks.

[TM-TransformerDataFlow] (376)

I can identify the shapes of data flowing through a Transformer-style language model.

Criteria

  1. Given model hyperparameters (layers, heads, hidden dim, vocab size, seq length), I can state the shape of key tensors (embeddings, Q/K/V, attention weights, logits).
  2. I can trace how a single token's representation changes from input embedding through attention and MLP layers to output logits.
  3. I can explain the role of residual connections in preserving information across transformer layers.

[TM-LLM-Generation] (376)

I can extract and interpret model outputs (token logits) and use them to generate text.

Criteria

  1. I can explain the autoregressive generation loop (prompt → logits → sample → append → repeat).
  2. I can explain how temperature affects the sampling distribution (higher = more random).
  3. I can write pseudocode for a basic text generation algorithm given a model and tokenizer.

[TM-LLM-Compute] (376)

I can analyze how computational requirements scale with model size and context length, and reason about the feasibility of training and running generative AI systems.

Criteria

  1. I can estimate memory requirements for a model given its parameter count and numerical precision.
  2. I can explain how compute scales with parameters and sequence length.
  3. I can describe at least two optimization techniques (e.g., quantization, KV caching) and their trade-offs.
  4. I can evaluate whether a given model can run on specific hardware (e.g., 12GB GPU, laptop CPU, cloud API).

Optimization Games

[OG-ProblemFraming-Supervised] (375)

I can frame a problem as a supervised learning task with appropriate inputs, targets, and loss function.

Criteria

  1. I can identify what the input features and target variable should be for a given problem.
  2. I can determine whether the task is regression or classification.
  3. I can select an appropriate loss function for the task type (MSE for regression, cross-entropy for classification).
  4. I can articulate what "success" means for the task and how to measure it.

[OG-ProblemFraming-Paradigms] (375)

I can distinguish between supervised learning, self-supervised learning, and reinforcement learning.

Criteria

  1. I can identify which paradigm applies to a given learning scenario.
  2. I can explain what provides the learning signal in each paradigm (labels, prediction task, rewards).
  3. I can give an example problem suited to each paradigm.
  4. I can explain why imitation (supervised) differs from exploration (RL) in what can be learned.

[OG-LossFunctions] (375)

I can select and compute appropriate loss functions for regression and classification tasks.

Criteria

  1. I can compute MSE loss given predictions and targets.
  2. I can compute categorical cross-entropy loss given predicted probabilities and true class.
  3. I can explain why we use cross-entropy rather than accuracy as a training loss.
  4. I can identify which loss function is appropriate for a given task type.

[OG-DataDistribution] optional (375)

I can reason about how the distribution of training data shapes what a model learns.

Criteria

  1. I can identify ways a training distribution might differ from deployment (selection bias, domain shift).
  2. I can explain how data augmentation expands the effective training distribution.
  3. I can contrast supervised learning (distribution given) with RL (distribution shaped by exploration).
  4. I can give an example of how a model might succeed on training data but fail in practice.

[OG-Eval-Experiment] (both)

I can design and execute valid experiments to evaluate model performance.

Criteria

  1. I partition data appropriately (train/val/test) before any model fitting.
  2. I can explain why we need held-out data and what goes wrong without it.
  3. I can select metrics appropriate to the task and stakeholder needs.
  4. I can interpret learning curves (loss/metric vs epoch) to understand training dynamics.

[OG-Generalization] (375)

I can diagnose and address generalization problems in trained models.

Criteria

  1. I can identify overfitting from learning curves (train loss decreasing while val loss increases).
  2. I can identify underfitting (both train and val loss remain high).
  3. I can propose appropriate interventions (more data, augmentation, regularization, adjust model capacity).
  4. I can explain the bias-variance tradeoff at an intuitive level.

[OG-Implement-Validate] (375)

I apply validation techniques correctly and proactively.

Criteria

  1. I split data into train/validation before fitting, without being reminded.
  2. I evaluate on validation data to select hyperparameters, not training data.
  3. I spot-check model predictions on specific examples to build intuition.
  4. I can explain why validation performance is a better estimate of real-world performance than training performance.

[OG-LLM-APIs] optional (both)

I can apply LLM APIs (such as the Chat Completions API) to build AI-powered applications.

Criteria

  1. I can construct appropriate API calls with system and user messages.
  2. I can process and use the model's response in an application.
  3. I can identify tasks where an LLM API is and is not appropriate.

[OG-Pretrained] (375)

I can explain the benefits and risks of using pretrained models.

Criteria

  1. I can explain how pretrained models provide useful features without task-specific training data.
  2. I can describe the "body + head" pattern (pretrained feature extractor with task-specific classifier).
  3. I can identify risks of pretrained models (bias, domain mismatch, licensing).
  4. I can explain when fine-tuning vs feature extraction is appropriate.

[OG-Theory-SGD] (375)

I can explain how stochastic gradient descent uses gradients to improve model performance.

Criteria

  1. I can explain that the gradient points in the direction of steepest increase of the loss.
  2. I can explain why we move in the negative gradient direction to reduce loss.
  3. I can explain why we use batches (stochastic) rather than the full dataset.
  4. I can identify the role of learning rate and what happens if it's too large or too small.

[OG-LLM-Tokenization] (376)

I can explain how inputs get chunked into tokens, how outputs are generated token by token, and how this affects usage of the model.

Criteria

  1. I can describe the tokenization pipeline (text → token IDs → embeddings) and its reverse.
  2. I can explain why subword tokenization is used instead of character-level or word-level approaches.
  3. I can identify at least one consequence of tokenization choices (e.g., multilingual bias, difficulty counting syllables, spelling quirks).

[OG-LLM-ConversationAsDocument] (376)

I can explain how a conversation with an LLM can be represented as a carefully structured document, including system messages, tool calls, and multimodal inputs and outputs.

Criteria

  1. I can describe how system, user, and assistant turns are serialized into a single token sequence.
  2. I can explain how function/tool calls fit into the conversation document format.
  3. I can explain how this framing allows a next-token predictor to behave as a dialogue agent.

[OG-LLM-Prompting] (376)

I can critique and refine prompts to improve the quality of responses from an LLM.

Criteria

  1. I can identify why a given prompt produces poor results (ambiguity, missing context, wrong framing).
  2. I can apply at least two prompting strategies (e.g., role assignment, few-shot examples, chain-of-thought, structured output constraints).
  3. I can explain the difference between system, user, and assistant messages and when to use each.

[OG-LLM-ContextAndTools] (376)

I can construct effective inputs for LLM-powered systems and use tool calling to connect models to external information.

Criteria

  1. I can trace how a prompt is assembled from components (system message, examples, tool results, conversation history) and explain why each part is there.
  2. I can build an LLM-powered system that uses structured outputs and at least one tool call.
  3. I can identify when adding context (examples, retrieved docs) helps vs. when it wastes the context window or distracts the model.
  4. I can diagnose failures in an LLM-powered system (e.g., hallucinating instead of using retrieved context, irrelevant tool results, prompt injection).

[OG-LLM-Eval] (376)

I can apply and critically analyze evaluation strategies for generative models.

Criteria

  1. I can explain why evaluating generative systems is harder than evaluating classifiers.
  2. I can describe at least two evaluation approaches (e.g., perplexity, human preference, task-specific metrics, LLM-as-judge).
  3. I can identify limitations of automatic metrics for open-ended generation.
  4. I can design a basic evaluation strategy for a specific LLM application.

[OG-SelfSupervised] (376)

I can explain how self-supervised learning can be used to train foundation models on massive datasets without labeled data.

Criteria

  1. I can explain next-token prediction as a self-supervised task (the "labels" come from the data itself).
  2. I can connect cross-entropy loss and perplexity to the idea of prediction quality and "surprise."
  3. I can explain why self-supervised pretraining enables capabilities that weren't explicitly trained for.

[OG-LLM-Train] (376)

I can describe the overall process of training a state-of-the-art dialogue LLM such as Llama or OLMo.

Criteria

  1. I can identify the three main stages of training (pretraining, supervised fine-tuning, RLHF/RLVR) and what each accomplishes.
  2. I can explain what data is used at each stage and where human input enters the process.
  3. I can describe how the model's behavior changes across stages (mimicry → instruction following → aligned responses).
  4. I can explain the basic insight of scaling laws (more data + more compute → predictably better models) and its practical implications.

[OG-Theory-Feedback] (376)

I can explain how feedback tuning can improve the performance and reliability of a model or agent.

Criteria

  1. I can explain the basic RLHF loop (generate samples → collect preferences → train reward model → optimize policy).
  2. I can explain what a reward signal is and give examples for different tasks (human preference, code correctness, factual accuracy).
  3. I can articulate why the reward signal is the hard part (reward hacking, specification gaming, proxy objectives).
  4. I can describe how RLVR (RL with verifiable rewards) simplifies the reward problem for certain tasks.

Overall

[Overall-Explain] optional (375)

I can explain basic AI concepts to a non-technical audience without major errors.

Criteria

  1. Given a technical concept (e.g., "training a neural network"), I can produce an accessible analogy or explanation.
  2. My explanations avoid anthropomorphizing AI systems in misleading ways.
  3. I can identify when a popular-press AI claim is misleading or exaggerated.

[Overall-Faith] optional (375)

I can articulate connections between Christian concepts and AI development, demonstrating genuine engagement.

Criteria

  1. I can identify at least one way a Christian concept (e.g., imago Dei, shalom, stewardship) informs how I think about a specific AI capability or application.
  2. I can engage respectfully with perspectives on faith and its implications that differ from my own.

[Overall-Impact] (both)

I can analyze real-world situations to identify potential negative impacts of AI systems.

Criteria

  1. Given a scenario, I can identify at least two distinct stakeholder groups who might be affected differently.
  2. I can articulate how training data distribution might differ from deployment conditions.
  3. I can identify feedback loops where model outputs might affect future training data or user behavior.
  4. I can flag concerns that warrant careful analysis before deployment.

[Overall-Dispositions] optional (both)

I demonstrate growth mindset and integrity in my AI learning and practice.

Criteria

  1. I can identify a specific instance where I persisted through difficulty in this course.
  2. I can describe how I use AI tools in ways that support rather than replace my learning.
  3. I can articulate my own boundaries for AI assistance and why I hold them.

[Overall-History] optional (375)

I can trace current AI technologies back to historical developments.

Criteria

  1. I can name at least one historical development (pre-2015) that enabled current deep learning.
  2. I can place the "deep learning revolution" in approximate historical context.

[Overall-PhilNarrative] optional (both)

I can engage with philosophical questions raised by AI systems.

Criteria

  1. I can articulate at least one philosophical question that AI raises (e.g., consciousness, intelligence, creativity, agency).
  2. I can distinguish between what AI systems do and what those capabilities might mean.
  3. I can identify assumptions embedded in how we talk about AI (e.g., "AI thinks", "AI understands").

[Overall-LLM-Failures] (376)

I can identify common types of failures in LLMs, such as hallucination (confabulation) and bias.

Criteria

  1. I can explain what hallucination/confabulation is and why LLMs are prone to it.
  2. I can identify at least two other failure modes (e.g., bias amplification, prompt injection, sycophancy, inconsistency across turns).
  3. I can describe strategies for mitigating specific failure modes in a given application context.
Course Objectives - CS 375
Announcements 23SP