Wiki page, DAT680 / DIT005 Special topics in software engineering: Home Page

Wiki page
2025-07-29T11:58:08+02:00

This course is a "special topics" course with changing topics every year. The course is held in a seminar style, and intended for a small group of highly motivated students.

In 2025, the topic for the course is going to be software performance measurement and optimization. The main teacher for this year is going to be Philipp Leitner.

The course will cover three to four types of performance engineering activities:

Analytical performance engineering (e.g., theoretical performance models, such as queueing theory or Petri nets)

Experimental performance engineering (stress and load testing, microbenchmarking)

Observational performance engineering (monitoring, canary releases, etc.)

Potentially compiler optimization

The course will not cover real-time systems, or systems with hardware-level performance guarantees.

Planned teaching activities:

The goal of the course will be for the students to collaboratively create a performance engineering "text book" covering the topics mentioned above. Students will work alone or in teams and each student / team will research and summarize one subarea of the scope mentioned above. Each student / team will (a) write and revise a chapter on their topic, and (b) present their findings to the rest of the class in a 30 minute lecture.

Schedule:

Date | Time | Activity | Room | Remarks | Resources

MON 03.11.

13:15 - 15:00

Kickoff and Introduction Lecture

Jupiter 243

Participation strongly suggested

Kickoff Slides, Intro Lecture

Additional Reading

WED 05.11. | 10:15 - 11:00 (ish) | Introducing the topics, topic assignment, potentially group formation | Jupiter 243 | Participation required |
| | | -- literature search and background reading for your topic -- | |
WED 12.11. | 10:15 - 12:00 | Individual feedback for each group | Philipp's office | Individual meetings, not necessary to attend entire session, meetings can be held at a different time in this week if desired |
| | | -- cont. literature search, drafting your outline -- | |
WED 19.11. | 10:15 - 12:00 | Individual feedback for each group | Philipp's office | Individual meetings, not necessary to attend entire session, meetings can be held at a different time in this week if desired |
| | | -- cont. literature search, drafting your outline -- | |
MON 24.11. | 15:00 | Deadline to submit your literature list and outline | via Canvas | |
WED 26.11. | 10:15 - 12:00 | Individual feedback for each group | Philipp's office | Individual meetings, not necessary to attend entire session, meetings can be held at a different time in this week if desired |
| | | -- writing your first chapter draft -- | |
WED 3.12. | 10:15 - 12:00 | Individual feedback for each group | Philipp's office | Individual meetings, not necessary to attend entire session, meetings can be held at a different time in this week if desired |
| | | -- writing your first chapter draft -- | |
WED 10.12. | 10:15 - 12:00 | Individual feedback for each group | Philipp's office | Individual meetings, not necessary to attend entire session, meetings can be held at a different time in this week if desired |
| | | -- continue your first chapter draft -- | |
MON 15.12. | 09:00 | Deadline to submit first draft | via Canvas | |
MON 15.12. | 13:15 - 15:00 | Lightning presentations by each group, assigning peer reviewers | Jupiter 243 | Participation required |
WED 17.12. | 10:15 - 12:00 | Individual feedback for each group | Philipp's office | Individual meetings, not necessary to attend entire session, meetings can be held at a different time in this week if desired |
SUN 21.12. | 18:00 | Submission of peer reviews | via Canvas | |
| | | -- improve chapter based on feedback, create slides for your class unit -- | |
WED 7.1. | 15:00 | Deadline to submit class slides and final chapters | via Canvas | |
THU, 15.1. and FRI, 16.1. | 09:00 - 12:00 | Class presentations by each group | Jupiter 322 | Participation required |

Final Presentation Schedule:

Day 1 (15.1.):

09:00 - 09:30: Workloads and workload modelling
09:30 - 10:00: Patterns and anti-patterns of efficient software
10:00 - 10:30: Queueing theory

Break

10:45 - 11:15: Compiler optimization
11:15 - 11:45: Canary releases and A/B testing
11:45 - 12:15: Monitoring and performance visualization

Day 2 (16.1.):

09:00 - 09:30: Dealing with Performance in ATAM
09:30 - 10:00: Runtime optimization in virtual machines
10:00 - 10:30: Performance and energy consumption

Break

10:45 - 11:15: Performance testing in the small - microbenchmarks and JMH
11:15 - 11:45: Performance testing in the large - load tests, stress tests, and robustness tests
11:45 - 12:15: Performance prediction using AI

Topic Suggestions:

Fundamentals:

Topic 1: Workloads and workload modelling (Group 3)

Topic 2: Patterns and anti-patterns of efficient software (Group 9)

Analytical Performance Engineering:

Topic 3: Queueing theory (Group 11)

Topic 4: Performance prediction using AI (Group 1)

Topic 5: Dealing with Performance in ATAM (Group 7)

Experimental Performance Engineering:

Topic 6: Performance testing in the large - load tests, stress tests, and robustness tests (Group 4)

Topic 7: Performance testing in the small - microbenchmarks and JMH (Group 6)

Topic 8: Performance and energy consumption (Group 8)

Topic 9: Compiler optimization (Group 12)

Topic 10: Runtime optimization in virtual machines (Java, Ruby, ...) (Group 2)

Observational Performance Engineering:

Topic 11: Monitoring and performance visualization (Group 5)

Topic 12: Canary releases and A/B testing (Group 10)

Student Representatives

taffletekleab@gmail.com Tesfu Tekleab Hailu
zihan_kuang@outlook.com Zihan Kuang
palmoscar4@gmail.com Oscar Palm
chitraraja274@gmail.com Chitra Rajasekar

Format for Reports

Please use the Latex template for Dagstuhl reports for your chapter. I suggest writing your report using Overleaf (you can either edit directly in the web interface or check it out as Git repository and then edit offline).

Grading

Please refer to the Course PM for details regarding grading and resubmission.

AI policy:

As a seminar course, the primary learning outcome of this course is for students to learn to search for, read, and synthesize scientific and grey literature on a specific narrow topic, in preparation for your own original research in your master's or PhD thesis.

Consequently, using AI tools such as ChatGPT or Writely is allowed (encouraged, even), but only to improve your own writing - not to replace your own literature review or to summarize original papers for you.

We now discuss a few potential AI use cases and the class policy regarding these modes of usage. As always, the point of this class is not that everybody ends up with the best final chapter, but that you actually learn something in the process. Do not hesitate to ask the teachers if anything is unclear.

Using AI to write drafts for paragraphs, sections, or the entire chapter | Policy: disallowed | AI can write lots of decent-sounding text based on very little input. This is not allowed. Collect your thoughts, write a decent first draft yourself, and do not let the AI loose on an empty document or paragraph.
Using AI to polish a draft you have written (for spelling, grammar, style) | Policy: allowed | It is perfectly fine to use AI as a way to improve your grammar and style.
Using AI to summarize papers so that you don't have to read them | Policy: disallowed | The entire point of the class is for you to read some papers. Much of the learning objective of the class is lost if you use AI to give you the Cliff's notes.

Using AI to critique your text

Policy: allowed, but beware

You can use AI to get feedback on the text you have written (both, in terms of style and content). However, beware:

(1) If asking for a content critique, implement the changes yourself (e.g., by looking for new literature in directions that the AI suggested) - don't let the AI extend your text with new thoughts and substantial new content. The reason for this is the same as why you are supposed to write your own text first as per the first item in this policy.

(2) Many current AIs aren't great at giving feedback. Take their feedback (negative one, but particularly positive one) with a large grain of salt. At the end of the day you are responsible for the quality of your text.

Using AI to critique others text

Policy: disallowed

During the class you are expected to provide a peer review of the chapters of other students. You are supposed to provide your own thoughts as feedback. Do not use AI to assess the work of others. You can use AI to polish your textual feedback as per the second item in this policy.

Using AI to search for literature | Policy: allowed, but beware | I expect students to primarily search for literature the old-fashioned way (e.g., using the web and digital libraries like Google Scholar, ACM, IEEE, etc.). You can in principle use AI to help you with literature search, but beware of hallucinations. Submitting a draft that references papers that do not exist is a great way to fail the class, if for no other reason than that it shows that you violated item 3 in this policy.
Using AI to clarify terms and concepts you do not understand | Policy: allowed | If you encounter terms or concepts that you do not understand during your reading, it is perfectly fine to use AI to get an explanation. However, the usual caveats remain - AI explanations may be misleading or straight-up wrong, especially when dealing with relatively obscure concepts or terms used in an unusual context. Remember that current AI very rarely says that it does not have much information about a topic.

Basically:

If AI helps you to write a more polished chapter after you already did your work, that's great

If AI helps you to write a chapter without doing much work, that's disallowed

Remember that AI is sometimes wrong, and rarely tells you when it's making things up. You are responsible for any mistakes your AI makes