Software Engineering with AI Assistance

Overview


In this first part, we look at large language models as tools that support software engineering work. The focus is on everyday engineering tasks: understanding a problem, clarifying a specification, designing a solution, implementing and debugging code, and verifying the result.

This perspective matters because AI assistance changes how software is produced, but it does not remove the need for engineering judgment. If anything, it increases the need for clear specifications, testing, and careful review — and the need for a broader understanding of the codebase.

The workflow used throughout this part is summarized in Figure 1.

Fig 1. — A useful AI-assisted workflow still starts with a task, turns it into a specification, implements a solution, and verifies the result.
Loading Exercise...

A sensible software engineering workflow that emphasizes forming an understanding of the problem and the product will remain important regardless of the location of the AI assistant. At the moment, AI assistants are used e.g. through a chat window, an editor, or an CLI. The tool may change, but the engineering responsibilities do not.

The structure of this part is as follows:

Finally, Recap and Feedback summarizes the main lessons of the part and prepares you for the programming foundation in Part 2.