DD2480 VT25 Software Engineering Fundamentals (se25)

About the course

Welcome!

Welcome to the course on Fundamentals of Software Engineering. We will teach essential techniques and methods for software engineering in this course, as well as a framework that ties them together.

You can find all information about this course in the module Introduction.

100 % on-campus teaching

All course activities will be on campus. In case you are unable to join a lecture because of symptoms of illness, you can look at the 2022 edition of the course, which has recorded lectures. (Note that the interactive Q & A sessions were not recorded and that the content this year will vary slightly.)

Lectures

Learning in this course will be based on active learning. Each lecture is preceded by short self-study and then starts as a question and answer (Q & A) session before diving deeper into the material. In general, each 45-minute block is organized in that way, so the time division shown below usually applies twice for a two-hour block.

Lecture schema: pre-study, Q & A, half-hour lecture

We would like you to self-study an introduction to each module before each lecture (except for the initial lecture) and will provide you with short videos (typically 3–15 minutes) and reading material for that. Sometimes, there will be questions to think about, or a quiz.

The lecture will begin with a Q & A session to ensure that the introduction to the material was clear and understood. That part will not be recorded, so you can speak freely. After that, the second part of each lecture block dives deeper into the topic.

The lecture blocks may be slightly shorter than 45 minutes each overall, but you are expected to be prepared in advance.

Schedule

The overall schedule for the lectures is as follows:

Zoom rooms per module/lecture
Lecture Module
1 Introduction
2 Version Control
3 Continuous integration; Introduction to Essence
4 Packages, structural complexity, open source
5 Testing and assertions, design patterns
6 API design and documentation
7 Refactoring, debugging, licensing
8 The big picture on software engineering

Labs and deadlines

An overview of all lectures, labs, and deadlines Links to an external site. is available. Note that the "extra lab-exam" and the submission deadline that follows it are only for groups who got an "Fx" during any of the previous graded assignments. For groups that have passed the four graded assignments, they do not apply.

Graded labs

Four graded lab sessions for presentations/demonstrations will be in the labs (lab #2, 5, 8, and 11, highlighted in lime green in the schedule linked to above). The 12th lab is a remedial lab for failed/missed presentations. Presentations are in person; if you cannot attend, you can still complete the work as usual with your group (by the original deadline) and re-do the presentation in the remedial lab.

Assignments

Assignments are done in groups; we will assign the groups to you as soon as course registration closes. Groups are assigned at random to give all students an equal chance and to emphasize the aspect of having to build a team that optimizes each team member's strengths in a project.

Also see: