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.
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:
- AI Coding Tools and Contemporary Software Engineering introduces the main categories of AI coding tools and how they fit into professional work.
- Requirements, Tasks, and Specifications shows how vague tasks become actionable engineering work.
- Designing Solutions with AI Assistance focuses on decomposition, alternatives, and trade-offs.
- Implementing, Debugging, and Refactoring with AI covers the practical use of AI support while writing and fixing code.
- Testing, Review, and Documentation with AI emphasizes verification and communication.
- Tutorial: Feature Development with AI brings the whole workflow together in a small CLI example.
Finally, Recap and Feedback summarizes the main lessons of the part and prepares you for the programming foundation in Part 2.