Course syllabus for Software engineering: Theory and practice

The course syllabus contains changes
See changes

Course syllabus adopted 2024-05-06 by Head of Programme (or corresponding).

Overview

  • Swedish nameProgramvaruutveckling: teori och praktisk tillämpning
  • CodeDAT670
  • Credits7.5 Credits
  • OwnerTKITE
  • Education cycleFirst-cycle
  • Main field of studyComputer Science and Engineering, Software Engineering
  • DepartmentCOMPUTER SCIENCE AND ENGINEERING
  • GradingTH - Pass with distinction (5), Pass with credit (4), Pass (3), Fail

Course round 1

  • Teaching language English
  • Application code 52151
  • Block schedule
  • Open for exchange studentsNo
  • Only students with the course round in the programme overview.

Credit distribution

0124 Written and oral assignments 5 c
Grading: TH
5 c
0224 Examination 2.5 c
Grading: TH
2.5 c
  • 13 Jan 2025 am J
  • 14 Apr 2025 am J
  • 18 Aug 2025 am J

In programmes

Examiner

Go to coursepage (Opens in new tab)

Eligibility

General entry requirements for bachelor's level (first cycle)
Applicants enrolled in a programme at Chalmers where the course is included in the study programme are exempted from fulfilling the requirements above.

Specific entry requirements

The same as for the programme that owns the course.
Applicants enrolled in a programme at Chalmers where the course is included in the study programme are exempted from fulfilling the requirements above.

Course specific prerequisites

Knowledge in Java programming and sucessfull completion of courses in data structures and algorithms (e.g., TDA417) as well as object-oriented programming(e.g., TDA548, TDA553) of 7.5hp each.

Aim

The course provides theoretical and practical understanding of principles in software engineering, emphasizing skills to tackle modern software complexities and lay a foundation for further studies on the topic of software engineering and a future career as a software engineer.

Learning outcomes (after completion of the course the student should be able to)

Knowledge and Understanding
  • 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
  • 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 Ability and Approach
  • 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.

Content

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.

Organisation

There will be lectures and exercise sessions. The sessions are a base to the individual assignments which are designed for the students to be familiar with practical applications of theoretical concepts taught in the lectures and professional software engineering tools.

Literature

Will be presented 8 weeks before the course starts

Examination including compulsory elements

The examination consists of two parts: an individual written exam (2.5 hec) and completion of mandatory homework assignments (5 hec).

In order to pass the course, both the final exam and the homework assignment have to be passed. The final grade will be based on the following: EXAM * 0.33 + ASSIGNMENTS * 0.67, rounded to the nearest integer number.

The course examiner may assess individual students in other ways than what is stated above if there are special reasons for doing so, for example if a student has a decision from Chalmers on educational support due to disability.

The course syllabus contains changes

  • Changes to course rounds:
    • 2024-05-08: Block Block B added by Chih-Hong Cheng
      [Course round 1]