Use of Artificial Intelligence

Web Only

This textbook was authored for the CIS 642/643 - Software Engineering Project I&II course at Kansas State University. This front matter is specific to that course. If you are not enrolled in the course, please disregard this section.

As a capstone course serving as a stepping-stone to an industry that now deeply integrates AI use, this course’s policy is intended to allow you to explore working with these tools. Accordingly, you may use AI to assist throughout the software development process. This assistance can include (but is not limited to): planning system designs, creating and editing documentation, writing code, writing tests, debugging, exploring and explaining existing codebases, and general knowledge gathering.

However, as the developer, you have a responsibility and obligation to understand the systems and software you are building, even if it has been created by an AI. Failing to do so can lead to severe functional, security, and reliability issues. Remember, the projects you are working on are for real people to use in the real world. Issues with the software and systems you develop can have real consequences!

Warning

You should be prepared to explain and defend any aspect of your project - design, code, documentation, etc. at any time - regardless if you’ve used AI assistance.

AI Development Suggestions

It can be tempting to ask an AI to develop a project whole cloth with a single prompt… except for the simplest of projects, this is not a good idea. As with any development effort, following a multi-stage process is wise, i.e.:

Plan -> Review -> Code -> Review

I.e. plan with the AI, reviewing and iterating on the plan until you feel confident it meets the requirements. Then author code and tests iteratively reviewing frequently. It is also a good idea to integrate this process at the feature level, i.e. work on a single feature inside a feature branch, and only when you are happy with it (and it has been thoroughly tested and documented), merge into the main branch.

A good initial setup for working with Claude can be found here Karpahty-Inspired Claude Skills Repo.

AI operate from a “context” - a memory cache that only lasts for the session. More permanent memory is handled by embedding comments into files in your project, typically including a design log. However, when this knowledge is scattered among multiple files, new sessions will overlook it if those files haven’t been explicitly read first. Platforms like OpenWolf seek to address this problem by providing a structure to support persistent memory, guiding the agent when rebuilding context for the task at hand.