Course syllabus
Course-PM
DAT670 / DIT593 Software Engineering Theory and Practice (7.5hp)
This course is offered by the department of Computer Science and Engineering study period 2 of 2026.
Contact details
- Teacher, Examiner, Course responsible: Björn Praestegaard Larsen (bjornpr@chalmers.se)
- Teacher: Linda Erlenhov (linda.erlenhov@chalmers.se)
- Teaching Assistant: Casper Hansen
- Teaching Assistant: Chloe Dusén
- Teaching Assistant: Kusai Al Malt
Administration
- Study counselor GU: svl@cse.gu.se
- Student office: Student_office.cse@chalmers.se
- Student at CSE at GU: https://studentportal.gu.se/english/my-studies/cse
- Study counselling Chalmers: https://www.chalmers.se/utbildning/studentstod/vagledning-och-stod/
Student representatives
- TBA
Course purpose
The course "Software Engineering - Theory and Practice" is designed to equip students with the knowledge and skills necessary to develop, manage, and maintain software systems across various industries. Starting with a foundation in general software engineering principles, students will explore the many challenges of designing software architectures, requirement engineering, and testing strategies. The course contains specialized topics such as real-time software engineering, software reuse, and the development of learning-enabled systems, emphasizing the unique challenges these systems present. Particular attention is given to safety-critical software engineering, essential for sectors like automotive and aerospace, where reliability and compliance with stringent standards are paramount.
Schedule
Lectures primarily on Tuesdays and Thursdays in HC1, for other course elements (e.g. mandatory workshops and presentations) make sure to check Schedule and Time Edit.
Course Literature
Book
|
|
Ian Sommerville: Software Engineering (10th Edition) Link for E-book at Chalmers Store |
The book has a webpage, with complementary material such as videos etc. that might help you understand the content.
Several editions are available for the suggested book, however, students are advised to get hold of the suggested edition for maximum relevance to the course contents. Since it has been around some years you can probably find it cheap second hand.
Suggested reading per lecture can be found here.
Other material
Any optional reading will be introduced during the course and found under modules, this is also where you will find the slides from any presentations.
Course Design
8-10 lectures,
2 mandatory workshops
1 project-based assignments running through the course.
Written final exam
Students develop one software system across all assignments.
The language of instruction for the course is English. Therefore, we expect all communication to take place in English.
Student Groups for the Project
The students needs to self organise into teams of 6 students. The students do this by signing up to a team on Canvas. It is encouraged to start early creating the teams. If a group is not filled on Thursday week 1 there will be a chance for those students to find other classmates in the same situation in the lecture break. You can also use the canvas discussion board to announce that you want to join a group, but it's much easier to do these things in person, see the group formation assistance module assignment for details.
Examination form
The course has two mandatory assessment sub-modules, i.e.,
- Written exam: 2.5 credits
Grading scale: Pass with distinction (5), Pass with credit (4), Pass (3) and Fail (U) - Assignments: 5 credits
Grading scale: Pass with distinction (5), Pass with credit (4), Pass (3) and Fail (U)
To pass the Assignment students have to:
- Participate in group work to meet the project requirements and objectives.
- Contribute to the written reports and the preparation of presentation materials.
- Attend two presentations and be available to answer questions about the project.
- Present the project at least once, either during the pitch or the final presentation. Presenting at both is also allowed.
- Attend two mandatory workshops. Each workshop is offered on two occasions during the same week; attend one session with your group for each workshop.
- Individually review another group's final report and prepare questions to ask during their presentation.
The grade for the assignment submodule will be awarded as a whole.
The final grade will be based on the following: EXAM * 0.33 + ASSIGNMENTS * 0.67, rounded to the nearest integer number.
To pass the course, all mandatory components must be passed. To earn a higher grade than Pass a higher weighted average from the grades of the components is required.
Plagiarism:
A student will get a Fail (U) in case of plagiarism/cheating during the written exam or during the assignments. Assignments also count as plagiarized if students submit (parts of) another group's assignment solution. Students are expected NOT to upload entire or part of their solution on a public webspace such that others can plagiarize from it, even after they have finished the course.
Use of Generative AI tools:
Generative AI - techniques that generate “original” content e.g. text, images, music, or videos, such as ChatGPT, DALL-E, or Codex - are an exciting and rapidly-evolving field of technology. Generative AI tools are poised to make revolutionary changes to how people work in many fields of business. In some parts of the course, it will be explicitly forbidden to use ChatGPT or any generative AI tools. When it is ok to use, the following is required:
- Transparency
- If you use any answer from genAI in your assignments, you must be transparent and tag the code / paragraph that it created. You must also add 1--2 sentences explaining why you think their suggestion is appropriate and provide the prompt you used to create it.
- Be critical towards the tools suggestions.
- You need to justify the generated artifacts. If you can’t judge whether its good, you are not ready to use that recommendation / answer. E.g. ChatGPT generates a lot of incorrect answers, so called hallucinations, which are basically bugs in the model. It's easier for the human eye to spot this in, for instance, generated images than it is in text.
More reading on the topic at Chalmers and GU.
Learning Objectives and Syllabus
Learning objectives:
Knowledge and understanding, after a completed course the student should be able to:
- Understand the core principles of software engineering, including various software development life cycles (SDLC), requirements engineering, and software architecture design.
- Describe strategies for software testing, maintenance, and evolution, as well as methods for real-time and safety-critical software engineering.
- Recognize the challenges and strategies of integrating software in complex systems and specific concerns in machine learning components.
Skills and abilities, after a completed course the student should be able to:
- Utilize professional tools for developing, testing, and analyzing software projects.
- Design and evaluate scalable, maintainable, and efficient software architectures.
- Apply software engineering principles to develop solutions in specialized areas such as real-time, safety-critical, and learning-enabled systems.
Judgement and approach, after a completed course the student should be able to:
- Critically assess different SDLC models and software engineering techniques to determine their effectiveness for specific projects.
- Evaluate and integrate software solutions across a variety of applications, including real-time, safety-critical, and learning-enabled systems.
- Understand how software development practices are applied in sectors like finance, telecommunications, and automation.
Link to the syllabus in the Studentportal:
Integrity
In this course, we expect students and teachers to meet with a high level of respect and professionalism. The teaching team is committed to treating all students (independent of race, gender, or religion) with respect and fairness, but we expect the same from all students. Consequently, unprofessional behaviour towards other students, teaching assistants, teachers, or anybody else involved with the course will not only be reported to the respective bodies at GU or Chalmers, but will also lead to immediate consequences in the course (up to, and including, failing the course irrespective of performance at graded assignments). Unprofessional behaviour in this context includes harassment, ad-hominem attacks, sexism, racism, or any other behaviour that aims at making teachers or students uncomfortable or feeling threatened. It can be verbally, written word and/or gestures.
Chalmers students code of conduct
Student health and wellbeing
If stress, illness or circumstances outside the course affect your studies, seek support early. You do not need to share private medical details in a public course space, contact the teaching team privately. Briefly explain how the situation affects participation or a deadline. The teacher can discuss priorities and direct you to an appropriate support route. Learning outcomes and formal examination requirements still apply. You can start by writing something in the lines of: “Circumstances are affecting my studies in DAT670/DIT592. I would appreciate a short conversation about what I should prioritise and which support route is appropriate.”
Changes from last year based on student representatives feedback
- Created one aligned project instead of 3 context separated assignments, to minimize overhead of each assignment. As a consequence, the instructions for all parts are rewritten.
- Added scaffolding workshops to assist with the project.
- Additional TA recruitment (Thank you students of earlier runs of this course for applying!<3)
- Added more architectural content (patterns and views)
- Made sure tool required for Architectural task, Enterprise Architect by SPARX industries, is available on EDIT STUDAT computer, via apps.
- No use of course Discord this time around, teachers will be available during scheduled assignment sessions for questions and canvas discussion is available to keep all information on one platform.
- Location - Vasa A was considered too far away on campus, moved all supervision sessions to Kemi (ALC/L42) and E-studion.
Exam dates:
- 11 Jan 2027 fm J
- 31 Mar 2027 fm J
- 16 Aug 2027 fm J
Course summary:
| Date | Details | Due |
|---|---|---|