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 2025.

Contact details

  • Teacher, primary course contact: Linda Erlenhov (linda.erlenhov@chalmers.se)
  • Teacher: Haroon Elahi (haroone@chalmers.se)
  • Teaching Assistant: Tabassum Alam
  • Teaching Assistant: Martin Thomas Yesudoss
  • Examiner: Jennifer Horkoff

Administration

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, Supervision sessions primarily on Tuesdays in Vasa A and Thursdays in Studion/other room in EDIT but make sure to check Schedule and Time Edit.

Course Literature

Textbook.jpg

Ian Sommerville: Software Engineering (10th Edition)

Adlibris link

Link for E-book at Chalmers Store

The book can also be physically purchased at Chalmers store and is available in the Chalmers Library.

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.

Suggested reading per lecture can be found here.

Any optional reading will be introduced during the course and linked on the schedule page.

Course Design

There will be lectures (theory) and assignments (practice). The assignments are designed for the students to be familiar with practical applications of theoretical concepts taught in the lectures and professional software engineering tools.

Student participation in these sessions is not mandatory but is recommended. Self-learning initiatives are also expected from the students in the form of group work and reading the recommended literature for the course. 

There are three graded assignments. Students are required to work in groups of 4(3), in order to optimize learning. During the supervision sessions, in addition to working on the assignments students will work on relevant exercises which would complement the lectures and the assignments, contributing to the overall learning from the course. The language of instruction for the course is English. Therefore, we expect all communication to take place in English.

Student Groups for the Assignments

The students needs to self organise into teams of 4 student. The students do this by signing up to a team on Canvas. If their team does not consist of 4 people by the deadline week 1, the group might get a random new friend added. 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. If a single student just want to be placed in a group and they don't "care" where they should join the group called "Join here if you want teacher to assign you to a random group". If a student have done none of the previously written, the teachers will assume the student do not want to do the assignments this year. Any students joining the course late, e.g. week 2, please contact Linda.

Examination form

The course has two mandatory assessment sub-modules, i.e., 

1. Written exam: 2.5 credits
    Grading scale: Pass with distinction (5), Pass with credit (4), Pass (3) and Fail (U)
2.  Assignments: 5 credits

    Grading scale: Pass with distinction (5), Pass with credit (4), Pass (3) and Fail (U) 

NOTE: The grade for the assignment submodule will be awarded as a whole.

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.

Details:

  • The course is examined by an individual written exam carried out in an examination hall at the end of the course, and homework assignments are normally carried out in groups of 4 students.
  • The sub-module Assignments is examined on the basis of solutions to compulsory problems handed in during the course and on the basis of individual contribution to the group work.
  • The student is required to complete written self-and peer-assessment forms during the the course which will be part of the assessment of the student's individual contribution to the project.
  • The sub-module Assignments is reexamined by individual assignments.
  • For the Examination sub-module, the student shall normally be guaranteed at least three examination occasions (including the ordinary examination) during a period of at least one year from the last time the course was given.
  • Any Assignment re-assessment is done by the end of the course and is described in a separate process.

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 ChatGPT 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 ChatGPT’s 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:

Chalmers

Göteborgs Universtitet

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 is harassment, sexism, racism, or any other behaviour that aims at making teachers or students uncomfortable or feeling threatened.

Exam dates:

Må 12/01-2026 fm J (4 h)

On 08/04-2026 fm J (4 h)

Må 17/08-2026 fm J (4 h)

 

Course summary:

Course Summary
Date Details Due