TU Wien:Advanced Software Engineering VU (Christaki)
- Advanced Software Engineering PR (Artner) (TU Wien, 0 Materialien)
- Advanced Software Engineering PR (Biffl) (TU Wien, 0 Materialien)
- Advanced Software Engineering PR (Grechenig) (TU Wien, 0 Materialien)
- Advanced Software Engineering PR (Tappeiner) (TU Wien, 0 Materialien)
- Advanced Software Engineering VU (Christaki) (TU Wien, 4 Materialien)
- Advanced Software Engineering VU (Zdun, Böhmer) (Uni Wien, 0 Materialien)
- Advanced Software Engineering LU (Grechenig) (TU Wien, veraltet, 0 Materialien)
- Advanced Software Engineering PR (Grechenig, Biffl) (TU Wien, veraltet, 6 Materialien)
- Advanced Software Engineering VO (Bernhart Strobl Mordinyi) (TU Wien, veraltet, 42 Materialien)
Daten[Bearbeiten | Quelltext bearbeiten]
Vortragende | Maria Christaki• David Michael Kaindlstorfer• Marion Scholz |
---|---|
ECTS | 3,0 |
Letzte Abhaltung | 2024W |
Sprache | English |
Abkürzung | ASE |
Mattermost | advanced-software-engineering • Register • Mattermost-Infos |
Links | tiss:194021, eLearning |
Inhalt[Bearbeiten | Quelltext bearbeiten]
Daten[Bearbeiten | Quelltext bearbeiten]
Vortragende | Maria Christaki• David Michael Kaindlstorfer• Marion Scholz |
---|---|
ECTS | 3,0 |
Letzte Abhaltung | 2024W |
Sprache | English |
Abkürzung | ASE |
Mattermost | advanced-software-engineering • Register • Mattermost-Infos |
Links | tiss:194021, eLearning |
Inhalt[Bearbeiten | Quelltext bearbeiten]
What is program analysis? Explains different types of analysis methods, which properties are desirable and which not. How can you tell that the result of the analysis is relevant meaning: Is it valid? Some terminology is introduced after which you are given a superficial look over various methods and their applications. This lecture is a more practical overview of the contents of FMI block 3 even though they did not coordinate this. In the past this lecture used to be similar to the SEPM VO which means you learned more about CI/CD, frameworks, VSC etc. None of these topics are covered anymore, this lecture is now entirely about program analysis!
Ablauf[Bearbeiten | Quelltext bearbeiten]
WS2024: The course consists of a weekly 1h lecture and there are two exercise sheets and two tests that have to be completed. The lectures follow a simple pattern: first the theory of a subset of program analysis is described over the course of a few lectures usually followed by lectures specifically dedicated to solving a number of exercises pertaining to the previously learned theory. The exercise sheets that have to be solved by the students consist of 5 exercises, of which at least 4 (per exercise sheet) had to be solved. There are three tests (two normal + 1 repeat test) with up to 100 points and you have to write at least 50 points on your two best tests.
Benötigte/Empfehlenswerte Vorkenntnisse[Bearbeiten | Quelltext bearbeiten]
WS2024: A little bit of understanding about SAT solving would be useful. One topic requires concepts like validity, satisfiability and so on. FMI easily covers these concepts. It suffices if you take FMI and ASE VU in the same semester. FMI introduces SAT solver just before you need them in ASE VU, which is a neat and helpful coincidence.
Vortrag[Bearbeiten | Quelltext bearbeiten]
WS2024: The lecture is pretty informal. Most of the theory is presented in a superficial manner which can lead to misunderstandings. The algorithms are not presented with pseudo code and formulas are rare. While the lecture notes contain all the covered content the informal nature of the descriptions can lead to a lot of open questions which step of a procedure can be applied and in which order. A good example would be "Abstract Interpretation". While it is a pretty simple method a lot of students had trouble with these exercises at the exams. Professor Christaki is nice but she should make the lecture and the notes a little bit more precise. The lecture was streamed and recordings were provided usually on the same day of the lecture. I would still recommend watching at least the stream and taking notes about anything that is not written on the slides as it could be relevant when applying the methods.
The topics were:
- Sound Static Analysis
- Abstract Interpretation
- Unsound Static Analysis
- Bounded Model Checking
- Symbolic Execution
- Dynamic Symbolic Execution
- Fuzzing
- Specification-Based, Differential, and Metamorphic Testing
- Specification Inference
Übungen[Bearbeiten | Quelltext bearbeiten]
WS2024: There were two exercise sheets that have to be solved by the students. Both sheets consisted of 5 exercises, of which at least 4 (per exercise sheet) had to be solved. The lecturer explained that even a wrong solution would count as a solved exercise if the student's notes suggest that there was a reasonable amount of effort, ergo: even a wrong solution will get you the point if you tried hard enough. The exercise sheets were handed out about a month before their due dates. Both sheets were accompanied by mandatory exercise sessions. Presence was checked in the beginning by calling up names, no signatures were required. If called up your uploaded solution was projected and you had to explain the exercise. The exercise sheets were not difficult per se you just had to deal with imprecise definitions and lost a lot of time trying to understand how the analysis has to be performed. Anecdotally I would say that the first sheet took more time to solve than the second. I would not attempt to solve all exercises in one day as it can be time consuming (Comparison: "Databasesystem" sheets).
Prüfung, Benotung[Bearbeiten | Quelltext bearbeiten]
WS2024: There were three tests, two regular ones and a repeat test at the end of the semester. A passing grade required 100 points and you needed at least 50 for every test you wanted to count towards the grade. Only the two best attempts were considered even though you could participate in all three.
The exams were partially more difficult than the exercise sheets. The reason for this was that while a lot of procedures were presented not all of them were explained in sufficient detail. An example would be the metamorphic testing: The exercises in the lecture and on the exercise sheets were laughably easy in comparison to the ones on the test. The relations used for the test required more reasoning about logic, especially implications, and divisibility.
All three tests followed the same structure: Some MC about theory and terminology, especially true false questions. Maybe one or two questions where you could make multiple crosses. On the first test wrong choices subtracted points. I could not find this warning on the second one. After the MC you get 4 exercises similar to the ones on the exercise sheets, each one about one method of the lecture. The first test covered terminology, abstract interpretation, bounded model checking and the terminology and introduction to symbolic execution. The second test covered symbolic execution, dynamic symbolic execution, fuzzing, specification-Based, differential, and metamorphic Testing and specification Inference. The third test could have questions from the entire lecture but also limited itself to five exercises.
The questions that require performing a program analysis procedure usually contain sub points about the corresponding theory i.e. can symbolic execution like you just performed for program verification? Why, why not? Explain!
As far as time goes: you have about two hours but I did find it pretty stressful. Depending on how detailed you answers are and how much you have to backtrack, because later exercise sub points can be based on previous solutions , there won't be much time for thinking so you should really practice solving the exercises blindly.
As each exercise is roughly 20% of the points grading can be pretty tough as one mistake could cost you the grade. A lot of people performed worse than they themselves and the lecturers expected especially on the first test (allegedly abstract interpretation was a disaster).
Dauer der Zeugnisausstellung[Bearbeiten | Quelltext bearbeiten]
Semester | Letzte Leistung | Zeugnis | |
---|---|---|---|
WS24 1. Test | 18.11.2024 | 21.11.2024 | 3 Tage |
WS24 2. Test | 17.12.2024 | 03.01.2025 | ~2.5 Wochen |
WS24 Repeat Test | 14.01.2025 | 16.01.2025 | 2 Tage |
Zeitaufwand[Bearbeiten | Quelltext bearbeiten]
WS2024: 10*1 hours (Lectures) + 2 * 2 hours (Exercise sessions) + 8 * 2 hours (Soling exercises) + 2 * 2 hours (Tests) + 8 * 2 hours (Studying for tests) = 50 hours = 2 ECTS
Unterlagen[Bearbeiten | Quelltext bearbeiten]
noch offen
Tipps[Bearbeiten | Quelltext bearbeiten]
noch offen
Highlights / Lob[Bearbeiten | Quelltext bearbeiten]
In W2024 Professor Christaki did one hour lectures only, which is refreshingly engaging compared to the usual 1h 30m lectures. Each lecture hour feels concise yet complete and well planned.
Verbesserungsvorschläge / Kritik[Bearbeiten | Quelltext bearbeiten]
noch offen