SENG350 AI Lab

Neil Ernst, Nathan Cassee

2025-10-14

Learning Objectives

The goal of the lab is to demonstrate to students how to utilize generative AI for programming.

After the lab, students should be able to: - Identify when and what context to include. - How to prompt GitHub Copilot, and - how to verify the output of GitHub Copilot.

Plan

The lab takes students through a small programming exercise, in various stages, showing students how to leverage generative AI, while thinking about how to apply it to their own projects.

Time Whom Title Description
5 Instructor Introduction Start the lab, welcome everybody, remind students that today’s topic will be using generative AI to implement software systems. Repeat the most important of the AI lecture: Responsible AI use, and the AI policy, critically evaluating AI output, and providing the right context to AI models. Explain the goal of the lab: build a tic-tac-toe web app using a structured AI workflow.
5 Instructor Framework Intro Introduce the 3-phase framework for AI-assisted development:
Phase 1 - Research: Use AI to understand the codebase and problem
Phase 2 - Planning: Get AI to create a detailed implementation plan (as markdown checklist), then review it as a team
Phase 3 - Implementation: AI translates the plan into code, with testing

Contrast this with “vibe coding” - emphasize the importance of human review in Phase 2.
5 Instructor & Students Think Pair Share Ask students to think for a minute about their own project, what files does it have that could provide helpful context to AI. After a thinking minute, ask students sitting next to each other to discuss for a minute or two, and focus on “what different types of context are there in your repositories? How could this be used to help prompt AI models”. Finally, call on a few pairs of students, ask them to share their results.
10 Student Phase 1 & 2: Design Using the framework, students work on Phase 1 (Research) and Phase 2 (Planning) for tic-tac-toe:
1. Create a project context file (.github/copilot-instructions.md) - specify tech stack, coding style, that you’re students learning
2. Write a short requirements.md with technical requirements and user stories
3. Use AI to generate a detailed spec.md with implementation steps
4. Review spec with a partner - look for issues ; 5. Begin implementing the app.
5 Everyone Break
5 Instructor Demo Phase 3 Demonstrate Phase 3 (Implementation): Show students how to give the requirements.md and spec.md to GitHub Copilot and work in small, iterative loops to implement parts of tic-tac-toe.

Example: creating a Dockerfile if the requirement specifies a dockerized application. Emphasize: small chunks, verify each step, think about testing.
20 Students Phase 3: Implement Students apply Phase 3 - Implementation:
1. Generate code in small chunks, working through each task in spec.md
2. After each chunk, verify the output (does it run? does it match requirements?)
3. Think about how to test (manual testing, unit tests, does the UI work?)
4. Keep notes on what works and what doesn’t
Go round, check on people.
5 Instructor Closing Summarize the lab, repeat the key point, how giving context to LLMs can change how you use it, and how useful it is.