4AHEL FSST Test (Group A)

2022-02-01

Max. 30 points

Name:

Task Max. Achieved
1 11
2 13
3 6
Sum 30
Benotung: >=27: 1, >=24: 2, >=20: 3, >15: 4, <=15: 5
  1. Agile Software Development.
    1. Answer the following statements indicating whether they are True or False.
      0-2 correct: 0 points, 3 correct: 1 point, 4 correct: 2 points.
      Agile practitioners have come to value:
      Statement True False
      Individuals and interactions over processes and tools
      Comprehensive documentation over working software
      Contract negotiation over customer collaboration
      Responding to change over following a plan
    2. Answer the following statements indicating whether they are True or False.
      0-4 correct: 0 points, 5 correct: 1 point, 6 correct: 2 points, 7 correct: 3 points, 8 correct: 4 points.
      Agile practitioners follow these principles:
      Statement True False
      Our highest priority is to satisfy the developers through early and continuous delivery of pizza.
      Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
      Business people and developers must work together daily throughout the project.
      The most efficient and effective method of conveying information to and within a development team is a scrum board.
      Incoming payments are the primary measure of progress.
      Agile developers are willing to work long hours and through weekends to meet business deadlines.
      Continuous attention to technical excellence and good design is wasted development timed.
      Simplicity – the art of maximizing the amount of work not done – is essential.
    3. Nenne eine agile Disziplin bzw. ein agiles Framework (1 Punkt). Nenne zwei dafür charakteristische Ereignisse/ Praktiken/ Artefakte/ Werte/ Rollen oder Unterdisziplinen (2 Punkte). Erläutere für jede von diesen Elementen Parallelen zu den Werten des agilen Manifests (2 Punkte).
      Zum Beispiel:
      Scrum
      Daily Standup und Sprint Review Meeting.
      Das Daily Standup erlaubt es den Mitgliedern des Scrum Teams regelmäßig zu kommunizieren und korrespondiert damit zum agilen Wert "Individuals and Interactions". Am Ende jedes Sprints wird im Sprint Review Meeting das aktuelle, funktionierende Produktinkrement vorgestellt, wodurch der agile Wert "Working Software" transparent gemacht wird.
  2. Linux
    1. Mit welchem Befehl kann man auf der Linux Kommandozeile von KDE Neon den clang Compiler für C und C++ installieren? (3 Punkte)
      sudo apt install clang
    2. Eine Linux Anwenderin befindet sich derzeit im Verzeichnis /var/log/apt. Welche Befehle muss sie eingeben, damit der folgende Verzeichnisbaum in Ihrem Home Verzeichnis angelegt wird? (4 Punkte)
      └── repos
          ├── code
          ├── configuration
          └── github
      
      mkdir -p ~/repos/code ~/repos/configuration ~/repos/github
      Alternatively, switch to home via `cd` first and skip the `~/`. It is also possible to create each directory on a separate line. If ~/repos is created separately first, the -p flag can be omitted.
    3. Die Benutzerin möchte, dass ihr Verzeichnis ~/repos/configuration nur mehr von ihrem Benutzer gelesen oder verändert werden kann. Kein anderer Benutzer auf dem System, egal in welcher Benutzergruppe, darf Zugriff darauf haben. Schreibe einen Befehl, mit dem diese Änderung durchgeführt wird. (2 Punkte)
      chmod go-rwx ~/repos/configuration
    4. Abschließend will die Benutzerin in das Verzeichnis ~/repos/code wechseln, um dort die C++ Datei 4ahel.cpp zu kompilieren und damit ein Programm mit dem Namen 4ahel zu erstellen, welches Sie danach startet. Welche Befehle gibt sie ein, um das Programm erfolgreich zu starten? (4 Punkte)
      cd ~/repos/code
      clang++ 4ahel.cpp -o 4ahel
      ./4ahel
  3. Welcher Text wird durch die folgenden Miniprogramme in der C++-Programmiersprache auf Standard Output (Terminal) geschrieben? Schreibe den genauen Output des Snippets. Wenn das Snippet nicht kompilierbar ist oder zu einem Absturz führen würde, so ist das Wort “ERROR” als Antwort zu geben. Erzeugt das Snippet keinen Output (wenn beispielsweise kein printf oder cout oder dergleichen aufgerufen wird), so ist "-" als richtige Antwort zu verwenden.
    1. Hinweis: der Wert von M_PI ist 3.14159.
      #include <cmath>
      #include <iostream>
      
      int main() {
        std::cout << area(1.0) << std::endl;
        return 0;
      }
      
      double area(double radius) {
        return radius * radius * M_PI;
      }
      ERROR
    2. #include <iostream>
      #include <vector>
      
      int main() {
        std::vector<int> numbers = {3, 9, 1, 12};
        std::cout << numbers[2] << std::endl;
        return 0;
      }
      1
    3. #include <iostream>
      #include <vector>
      
      void print_vector(vector<std::string> v);
      
      int main() {
        std::vector<std::string> names = {"Pat", "Chris", "Sue"};
        std::vector<int> numbers = {3, 9, 1, 12};
        print_vector(names);
        print_vector(numbers);
        return 0;
      }
      
      void print_vector(vector<std::string> v) {
        for (auto it = v.begin(); it != v.end(); ++it) {
          std::cout << *it << std::endl;
        }
      }
      ERROR