The goal of the course is to equip computer science students with the core competencies of modern software engineering while introducing them to the principles and practices of building AI agent systems.
Software Engineering (GAINBAN-SZOFTTEC-1)
Basic data
Instructors
Course objectives
Course content
Lectures
1. Software engineering goals, lifecycle models, team roles, and an introduction to AI agents. Defining AI agents, distinguishing them from simple chatbots, and explaining autonomy, tool use, memory, and action as core agent properties. 2. Stakeholder analysis, functional and non-functional requirements, user stories, acceptance criteria, and use case modeling. Showing how requirements for AI assistants and agentic workflows differ from requirements for conventional business software. 3. UML as a communication and specification language. Focus on use-case diagrams, class diagrams, object diagrams, database diagrams and package-level structure. Preparing students for Mermaid-based class diagram modeling in the labs. 4. Activity diagrams, state machines, sequence diagrams, and interaction modeling. Applying them to traditional systems and to AI agent workflows such as observe–think–act loops and tool invocation chains. 5. Architectural decomposition, interfaces, coupling and cohesion, and basic architectural styles. Agent architecture: planning, tool use, memory, orchestration, and multi-agent collaboration as an application architecture topic. 6. Conceptual data modeling, relational design, normalization (recapitulation), and mapping from model to database. Showing how persistence supports business applications and agent systems that require memory, logs, or task state. 7. Coding standards, code review, branching strategies, Git-based collaboration, and traceability from model to code. How agent-generated code requires review, testing, and version control like human-written code. 8. Scrum, iteration planning, backlog management, and lightweight project governance. Short overview of other approaches: Extreme Programming, Test-Driven Development, etc. 9. SOLID principles and a curated set of design patterns: factory, adapter, decorator, proxy, facade, observer, command, iterator, and MVC. Examples that support extensibility, dependency control, and agent tool abstractions. 10. Midterm. 11. Unit, integration, system, and acceptance testing, Test-Driven Development. AI-agent evaluation basics: task success, error analysis, trace inspection, and measurement of goal completion reliability. 12. Agent design patterns such as reflection, tool use, planning, memory, and multi-agent coordination, and comparing them with classical software engineering practices. Documentation, testing, and presentation practices for agentic software projects. 13. Make-up/retake midterm.
Labs
1. Introducing the semester project, team roles, and a Git-based collaboration workflow. Creating a Git repository, defining a branching strategy, and setting up an issue tracker. Short introduction to AI agents: students observe a simple agent demo, distinguish it from a chatbot, and identify autonomy, tool use, memory, and action as core properties. 2. Guiding students in eliciting requirements for the project, performing stakeholder analysis, and writing user stories with acceptance criteria. Creating use case diagrams in Mermaid and rendering them using mermaid-drawing.com. Showing how requirements for AI assistants and agentic workflows differ from requirements for conventional business software. 3. Use-case, class, object, database, and package diagram syntax in Mermaid and rendering them online using mermaid-drawing.com. Modeling the main domain classes, their relationships, and the database schema for the project. Establishing Mermaid as the default diagramming tool for UML structural modeling. 4. Activity, state machine, and sequence diagram syntax in Mermaid. Modeling activity diagrams, state machines, and sequence diagrams in Mermaid. Including at least one sequence diagram with an AI agent calling a tool or external service. Validating diagrams by rendering and peer review, and applying behavioral models to both traditional systems and agent workflows such as observe–think–act loops. 5. Creating an architectural decomposition of the system using Mermaid diagrams (packages, components, and interfaces). Defining coupling and cohesion for key modules and selecting an architectural style. Designing a simple agent architecture with planning, tool use, memory, orchestration, and optionally multi-agent collaboration as an application architecture component. 6. Creating a conceptual data model, performing relational design and normalization, and mapping the model to a relational schema using Mermaid database diagrams. Showing how persistence supports business applications and agent systems that require memory, logs, or task state. Optionally generating a database schema from the model as a demo. 7. Implementing a small feature following coding standards, performing a peer code review, and using Git branching and merging in a team context. Creating traceability links between UML diagrams and code. Discussing how agent-generated code requires review, testing, and version control like human-written code. 8. Running a short sprint-planning exercise in which students define a backlog, estimate tasks, and assign work. Practicing Scrum roles, events, and artifacts, and tracking progress during a simulated iteration. Including a short overview of Extreme Programming and Test-Driven Development as complementary agile practices. 9. Refactoring a small code base to improve responsibility boundaries and dependency direction according to SOLID principles. Implementing one or two selected design patterns (factory, adapter, decorator, proxy, facade, observer, command, iterator, or MVC) and discussing how the pattern supports extensibility, dependency control, and agent tool abstractions. 10. Writing unit, integration, and system tests using Test-Driven Development for a small feature. Performing acceptance testing and evaluating an AI agent component by measuring task success, analyzing errors, inspecting traces, and assessing goal completion reliability. Connecting classical testing practices with AI-agent evaluation basics. 11. Integrating the AI agent component with the main software project, applying agent design patterns such as reflection, tool use, planning, memory, and multi-agent coordination, and documenting the system using Mermaid diagrams. 12. Semester project presentation. 13. Project presentation make-up/retake.
Acquired competences
Knowledge
- He/she knows the operations of hardware and software elements, the technology of their implementation, how to solve problems related to their operation and the possibilities of the interconnection of IT and other technical systems. - He/she knows the main programming paradigms, programming languages, development tools. His/her knowledge covers the modelling of IT systems, creation of database based systems, as well as the structure, operation and implementation of computer networks. His/her knowledge covers the characteristics of intelligent systems, the specificity of mobile application development, the management of state-of-the art general purpose operating systems, as well as the aspects of IT security. - He/she is familiar with the important software development methodologies, and the notation systems for IT designs and documentation. - He knows the vocabulary and special terms of the engineering profession in the Hungarian and English languages at least on the basic level.
Skills
- He/she is able to develop applications, program client-server and WEB, mobile operating systems, develop multiplatform systems. He/she can apply his/her knowledge acquired during his/her study to acquire deeper knowledge in the field of information engineering and to process special literature and solve problems related to information technology. - He/she is able to fulfill analytical, specification, planning, development and operation tasks, in addition, he/she applies the development methodology, debugging, testing and quality assurance methods in his/her field. - He/she cooperates with other computer science engineers, electrical engineers during team work, and with other experts during the analysis and solution of a problems. - He/she can communicate in Hungarian and in English about professional issues, he/she uses the terms of information technology in a creative way. - He/she constantly improves his/her knowledge and keeps up with the development of the computer engineering profession.
Attitude
- He/she genuinely represents the professional principles of engineering and information technology fields. - He/she aims to see through the entire engineering system not only his/her own field. - He/she is open to acquire new methods, programming languages and develop skills to use them. - He/she is open to get to know other fields which employ information technology tools, and open to work out information technology soultions in cooperation with the experts of other areas. - He/she makes an effort to work efficiently and to high standards.
Autonomy and responsibilities
- He/she reveals the weaknesses of the technologies applied, risks of processes and initiates measures which reduce them.
Requirements, evaluation and grading
Mid-term study requirements
The course has three components: a theoretical midterm during lectures (30%, 30 points), the semester project (50%, 50 points), and the exam (20%, 20 points). Students may earn up to 10 extra points by completing assignments given by the instructors. To obtain the course signature, a student must earn at least 16 points on the midterm and at least 26 points on the semester project, regardless of the total score. The maximum basic final score is 100 points, which can be increased by up to 10 extra points.
Exam requirements
Examination mark offered: as defined in the Study and Examination Regulations. Examination method: oral
Generative AI usage
Use of GAI tools is fully permitted, provided their use is properly cited and does not compromise achieving the learning outcomes defined in the course description.
Study aids, laboratory background
Lecture notes - available updated after each lecture in the Moodle course of the subject.
Readings
Compulsory readings
1. Shvets, A. "Design Patterns." Refactoring.Guru, 2024. Online: https://refactoring.guru/design-patterns 2. Microsoft. "AI Agents for Beginners: A Course." Microsoft, 2025. Online: https://microsoft.github.io/ai-agents-for-beginners/.
Recommended readings
1. Patterns of Building AI Agents. Mastra.ai, 2025. Online: https//mastra.ai/books/patterns-of-building-ai-agents. 2. Beginning Software Engineering by Rod Stephens https://www.oreilly.com/library/view/beginning-software-engineering/9781119097076/