SPRING 2027 TBA
Undergraduate
Modern generative artificial intelligence tools are astonishingly effective at generating code, given natural language specifications. The software engineering industry is rapidly adopting these tools to improve engineers’ productivity: instead of writing all of their code themselves, many engineers are now effectively “team leaders”, managing a “team” of artificial intelligence tools. In this course, students will get hands-on experience in using such artificial intelligence tools for software engineering in a semester-long course project. Topics will include agents, requirements elicitation and specification in the AI era, AI code generation and how to ensure that AI-generated code is correct, and discussions of how other traditional software engineering practices like code review and static analysis can help with AI-assisted software engineering.
Prerequisite: Officially, none. Students will be expected to know how to program well enough to understand and debug code generated by an AI tool. Students without significant prior exposure to software engineering concepts (e.g., in CS 490 or an internship) will be expected to do additional background reading.
Course Description:
This course is focused on collaborative game development through the creation of a playable prototype based on an existing intellectual property. Working in small interdisciplinary teams, digital designers and programmers will integrate artistic vision with technical implementation, learning how to balance creativity with the constraints of an established IP. Students will develop assets, gameplay features, and user experiences while practicing industry-standard workflows, version control, and agile project management. Emphasis is placed on cross-disciplinary communication, iterative prototyping, and responding to feedback. By the end of the course, teams will deliver a functional prototype that demonstrates both innovation and fidelity to the source material.
SPRING 2027 TBA
Graduate
Modern generative artificial intelligence tools are astonishingly effective at generating code, given natural language specifications. The software engineering industry is rapidly adopting these tools to improve engineers’ productivity: instead of writing all of their code themselves, many engineers are now effectively “team leaders”, managing a “team” of artificial intelligence tools. In this course, students will get hands-on experience in using such artificial intelligence tools for software engineering in a semester-long course project. Topics will include agents, requirements elicitation and specification in the AI era, AI code generation and how to ensure that AI-generated code is correct, and discussions of how other traditional software engineering practices like code review and static analysis can help with AI-assisted software engineering.
Prerequisite: Officially, none. Students will be expected to know how to program well enough to understand and debug code generated by an AI tool. Students without significant prior exposure to software engineering concepts (e.g., in CS 490 or an internship) will be expected to do additional background reading.
Human-robot interaction (HRI) is an interdisciplinary field that examines how humans and robotic systems perceive, communicate, and work with one another. As robots become increasingly integrated into manufacturing, healthcare, homes, and everyday environments, designing intuitive, reliable, and human-centered interactions is essential for successful deployment. This course introduces core concepts, theories, and current research trends in HRI, with an emphasis on designing, implementing, and evaluating interactions between humans and robotic technologies. Topics include (1) human-centered interfaces, (2) human-robot teamwork and collaboration, (3) evaluation methods in HRI, (4) robot learning from human demonstrations, and (5) multi-human multi-robot interaction. Students will explore these areas through critical literature readings, in-class discussions, hands-on programming and analysis assignments, and a final project that applies HRI principles to a real or simulated robotic system.